nullColumnHack是什么意思?

6
根据SQLiteDatabase API文档:
  • insert(String table, String nullColumnHack, ContentValues values)

    方便方法用于将一行插入数据库。

nullColumnHack是什么意思?
你能给我举个例子吗?

4
谷歌一下?那可能会有帮助。 - Evan Carslake
API 注意事项位于 SQLiteDatabase 页面中,非常清晰明了。 - belle tian
1
我投票关闭此问题,因为它是许多问题的重复,因此显示缺乏研究。 - Elltz
2
具有讽刺意味的是,这是谷歌上的第一个结果。 - CyberFox
2个回答

17

有时候您想插入一个空行,在这种情况下,ContentValues 没有内容值,您应该使用 nullColumnHack。

例如,您想要在表 student(id, name) 中插入一行空白行,其中 id 是自动生成的,而 name 为空。您可以像这样进行调用:

ContentValues cv = new ContentValues();
db.insert("student", "name", cv);

如果我指定了nullColumnHack会发生什么?如果我不指定会发生什么? - Ethyl Casin
@EthylCasin 我猜,如果你指定了nullColumnHack,最终的SQL语句将会在那一列上有一个null值。 - Ted Yu
那是什么意思? - Ethyl Casin
1
在上面的例子中,Android框架会生成这样一个SQL语句:"insert into student(name) values(null)",如果你不这样做,Android框架就不知道该在语句中填入什么。 - Ted Yu

9
你尝试过查看文档吗?(链接
参数nullColumnHack是可选的,可以为空。SQL不允许插入没有命名至少一个列名的完全空行。如果提供的值为空,则未知列名且无法插入空行。如果不设置为null,nullColumnHack参数提供可为空的列名,在值为空的情况下将显式插入NULL。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接