SQLiteDatabase的insert方法的第二个参数是"nullColumnHack"
。这是什么意思。应该将什么值传递给此参数。
由于
答案 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。