插入SQLiteDatabase的方法

时间:2012-05-17 09:47:08

标签: android sqlite

SQLiteDatabase的insert方法的第二个参数是"nullColumnHack"。这是什么意思。应该将什么值传递给此参数。

由于

3 个答案:

答案 0 :(得分:5)

假设您有一个名为foo的表,其中所有列都允许NULL值或具有默认值。

在某些SQL实施中,这将是有效的SQL

`INSERT INTO `foo;

这在SQLite中无效。您必须至少指定一列:

INSERT INTO foo (somecol) VALUES (NULL);

因此,如果您将空ContentValues传递给insert(),则Android和SQLite需要一些可安全分配NULL的列。如果您有多个这样的列可供选择,请通过您选择的选择机制选择一个:掷骰子,Magic 8-Ball(TM),硬币翻转,小隔间配合翻转等。

就个人而言,我认为将空ContentValues传递给insert()只是违法行为,但他们没有问我......: - )

礼貌的公共软件。

答案 1 :(得分:0)

nullColumnHack已知且无法插入空行。如果未设置为null,则nullColumnHack参数提供可为空的列名称的名称,以便在值为空的情况下显式插入NULL。

答案 2 :(得分:-1)

简要说明..

nullColumnHack

可选的;可能是null。 SQL不允许在不命名至少一个列名的情况下插入完全空行。如果提供的值为空,则不知道列名称,并且无法插入空行。如果未设置为null,则nullColumnHack参数提供可为空的列名称的名称,以便在值为空的情况下显式插入NULL。