gpt4 book ai didi

android - 在 Android 中通过 SQLite 保存数据时 COLUMN_NAME_NULLABLE 的必要性?

转载 作者:行者123 更新时间:2023-11-30 02:48:17 26 4
gpt4 key购买 nike

在 Google 提供的基本 Android 教程中,关于 putting information into a database 的部分使用 insert() 函数涉及到使用一个名为 COLUMN_NAME_NULLABLE 的列,该列在描述 schema 之前并未列出。或数据库本身通过 SQLiteOpenDbHelper,所以我假设它是通过 BaseColumns 的实现自动生成的,类似于 _ID 列。

但是,根据 Eclipse,情况并非如此。因此,这是否意味着在我的初始架构/契约(Contract)中我必须创建一个列(这不是通过 BaseColumns 的实现自动生成的)?

再者,这个栏目有什么用?如果没有 ContentValues,它会只包含 String "null" 吗?如果 ContentValues 不为空,它会保持空白且未使用吗?

最佳答案

正如文档所说,nullColumnHack 是

optional; may be null. SQL doesn't allow inserting a completely empty row without naming at least one column name. If your provided values is empty, no column names are known and an empty row can't be inserted. If not set to null, the nullColumnHack parameter provides the name of nullable column name to explicitly insert a NULL into in the case where your values is empty.

因此 nullColumnHack 将是数据库中可以包含空值的列之一的名称。

如果您确定插入到数据库中的 contentValues 绝不会为 null 或绝不会仅包含 null 值,则可以保留 nullColumnHack 没有名称,因此为 null。

如果您尝试插入 null ContentValues,它可能会抛出错误。

关于android - 在 Android 中通过 SQLite 保存数据时 COLUMN_NAME_NULLABLE 的必要性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24640786/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com