SQLiteDatabase 的 insert 方法的第二个参数是"nullColumnHack"
. 这是指什么。应该将什么值传递给此参数。
谢谢
假设您有一个名为 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()
但他们没有问我...... :-)
礼貌的公共软件。
nullColumnHack 是已知的,不能插入空行。如果未设置为 null,则 nullColumnHack 参数提供可空列名称的名称,以便在您的值为空的情况下显式插入 NULL。
简要说明..
nullColumnHack
选修的; 可能为空。SQL 不允许插入一个完全空的行而不命名至少一个列名。如果您提供的值为空,则表示不知道列名并且无法插入空行。如果未设置为 null,则 nullColumnHack 参数提供可空列名称的名称,以便在您的值为空的情况下显式插入 NULL。