3

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

谢谢

4

3 回答 3

5

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

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

`INSERT INTO `foo;

这在SQLite. 您必须至少指定一列:

INSERT INTO foo (somecol) VALUES (NULL);

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

就个人而言,我只是将空传递给 是非法的ContentValuesinsert()但他们没有问我...... :-)

礼貌的公共软件。

于 2012-05-17T10:01:41.583 回答
0

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

于 2012-05-17T10:12:14.983 回答
-1

简要说明..

nullColumnHack

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

于 2012-05-17T09:56:15.813 回答