如何为 Sqlite 中的 TEXT 列设置默认值?

How to set a default value to a TEXT column in Sqlite?

我有一个简单的table。我正在尝试为 TEXT 列设置默认值。这是 table 查询:

"CREATE TABLE book(_id INTEGER PRIMARY KEY AUTOINCREMENT, book_id TEXT NOT NULL DEFAULT '0', book_name TEXT NOT NULL);"   

它创建了 table 但当我尝试插入数据时出现问题。我只是想给 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);    

此处 cvContentValues 的对象,它仅包含列 book_name 的值.

您可以在创建 table 时为列指定默认值。 (似乎您无法使用 ALTER 语句添加默认值,因此您必须重新创建 table。)

CREATE TABLE your_table_name
(MainContactName TEXT NOT NULL DEFAULT '')

对于例子,

CREATE TABLE book(_id INTEGER PRIMARY KEY AUTOINCREMENT,book TEXT DEFAULT "abc");

现在看到,默认值设置为 "abc"

检查 sqllite documentation.

改变table,

sqlitedbInstance.execSQL("alter table myTable add column Address TEXT DEFAULT 'ABC' ");