在谷歌提供的基本安卓教程中,关于将信息存入数据库使用insert()函数的部分涉及使用一个名为COLUMN_NAME_NULLABLE的列,该列以前在通过SQLiteOpenDbHelper描述模式或数据库本身时没有列出过,因此我假设它是通过实现BaseColumns自动生成的,类似于_ID列。
然而,根据Eclipse的说法,情况并非如此。因此,这是否意味着在我的初始模式/契约中我必须创建一个列(而这不是由BaseColumns的实现自动生成的)?
此外,这个专栏有什么用?如果没有String "null",它会只包含ContentValues吗?如果ContentValues不是null,它是否仍然是空白的和未使用的?
发布于 2014-07-08 20:31:13
如文档所述,nullColumnHack是
可选;可能为null。SQL不允许在不指定至少一个列名的情况下插入一个完全空的行。如果提供的值为空,则不知道列名,也无法插入空行。如果未设置为null,则nullColumnHack参数提供可空列名的名称,以便在值为空的情况下显式插入NULL。
因此,nullColumnHack将是数据库中可以包含空值的列之一的名称。
如果您确信插入到DB中的contentValues永远不会为null或永远不会只包含null值,则可以将nullColumnHack保留为没有名称,因此为null。
如果尝试插入空ContentValues,它可能会引发错误。
https://stackoverflow.com/questions/24640786
复制相似问题