【发布时间】:2016-04-27 05:49:11
【问题描述】:
我有一张简单的桌子。我正在尝试为 TEXT 列设置默认值。这是表查询:
"CREATE TABLE book(_id INTEGER PRIMARY KEY AUTOINCREMENT, book_id TEXT NOT NULL DEFAULT '0', book_name TEXT NOT NULL);"
它会创建表,但是当我尝试插入数据时会出现问题。我只是尝试为 book_name 提供书名,因为我预计 book_id 的列默认值为 0。但它没有,它添加了空值,因此不会插入行。我也试过这个查询:
"CREATE TABLE book(_id INTEGER PRIMARY KEY AUTOINCREMENT, book_id TEXT NOT NULL DEFAULT \'0\', book_name TEXT NOT NULL);"
但问题仍然存在。我已经搜索了堆栈溢出,并得到了一些答案,但它们很旧,现在不适合我。因此,在如何将默认值设置为 sqlite 中的 TEXT 列方面发生了一些变化。在此先感谢:)
编辑
这是插入语句:
database.insert("book", null, cv);
这里 cv 是 ContentValues 的对象,它只包含 book_name 列的值。
【问题讨论】:
-
您的 INSERT 语句是什么?
-
你是在 SQLiteOpenHelper 的 oncreate 方法中创建表吗?
-
请提供您如何在表格中插入数据的代码
-
更新了我的问题。是的,我正在 onCreate 中创建表。表创建没有任何问题。我还使用 sqlite 浏览器检查了数据库。主要问题是如何将默认值设置为 TEXT 列。
-
你为什么使用 TEXTUAL ids?!您应该改用 INTEGER。
标签: android database sqlite android-studio android-sqlite