Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/201.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android SQLite:insert/replace方法中的nullColumnHack参数_Android_Sqlite - Fatal编程技术网

Android SQLite:insert/replace方法中的nullColumnHack参数

Android SQLite:insert/replace方法中的nullColumnHack参数,android,sqlite,Android,Sqlite,androidsdk有一些使用SQLite操作数据的方便方法。但是,和方法都使用了一些nullColumnHack参数,我不理解这些参数的用法 文档用以下内容进行了解释,但是如果一个表有多个允许NULL的列,该怎么办?我真的不明白:/ SQL不允许插入一个完全为空的行,因此如果initialValues为空,则此列[/row for replace]将显式分配一个NULL值 假设您有一个名为foo的表,其中所有列要么允许NULL值,要么具有默认值 在某些SQL实现中,这将是有效的SQL: INS

androidsdk有一些使用SQLite操作数据的方便方法。但是,和方法都使用了一些
nullColumnHack
参数,我不理解这些参数的用法

文档用以下内容进行了解释,但是如果一个表有多个允许
NULL
的列,该怎么办?我真的不明白:/

SQL不允许插入一个完全为空的行,因此如果initialValues为空,则此列[/row for replace]将显式分配一个
NULL


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

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

INSERT INTO foo;
这在SQLite中无效。必须至少指定一列:

INSERT INTO foo (somecol) VALUES (NULL);
因此,在将空的
ContentValues
传递给
insert()
的情况下,Android和SQLite需要一些可以安全地分配
NULL
的列。如果您有多个这样的列可供选择,请通过您选择的选择机制选择一个:掷骰子、魔法8球(TM)、掷硬币、隔间伴侣翻转等

就我个人而言,我刚刚将一个空的
ContentValues
传递给
insert()
,这是非法的,但他们没有问我…:-)