android - 如何在仅包含 ID 列的 SQLite 表中创建新行?

标签 android sqlite

我在 Android 上的 SQLite 数据库中有一个表,它只包含一个带有行 ID 的列。该表用于链接不同表中的数据集。当我尝试在表中插入一个新行时,它抛出了这个异常:

android.database.sqlite.SQLiteException: near "null": syntax error (code 1): , while compiling: INSERT INTO journeyDetailsTable(null) VALUES (NULL)

我的表是这样创建的:

private static final String CREATE_TABLE_JOURNEY_DETAIL = "create table " +
        TABLE_NAME + " (" + ID_COLUMN + " integer primary key autoincrement);";

我正在尝试像这样插入一个新行:

parentID = db.insert(ANOTHER_TABLE, null, new ContentValues());

有什么想法吗?

最佳答案

SQLiteDatabase.insert(String, String, ContentValues) 的文档明确指出 SQL 不允许插入一个完全空的行而不命名至少一个列名。这意味着,如果您不指定任何值,则需要指定一个列名以将 NULL 插入到其中。您应该可以使用 db.insert(ANOTHER_TABLE, ID_COLUMN, new ContentValues()) 来完成它。

无论如何,您可能应该重新考虑您的数据库结构,因为像这样设置表似乎不是有效的、可维护的和不可监督的,尤其是从长远来看。

关于android - 如何在仅包含 ID 列的 SQLite 表中创建新行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26700177/

相关文章:

Android GET_CONTENT 音频文件

sqlite - 如何刷新 SQLite 数据库浏览器中的表?

android - 为什么相机 Intent 不返回文件路径?

android - bindService 在什么情况下返回 false?

sqlite - SGE+ sqlite3 : Error: database is locked

php - 如何在 PHP 中更改 PDO/SQLite 连接的字符编码?

android - 在整个 SQLite 数据库中搜索关键字以在 Android 应用程序中实现搜索功能

haskell - 在 Sqlite3 中输入的 Scotty 参数

android' 未被识别为内部或外部命令

android - 得到北极,南极。使用 TYPE_MAGNETIC_FIELD 或 TYPE_GYROSCOPE