如何为 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);
此处 cv 是 ContentValues 的对象,它仅包含列 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' ");
我有一个简单的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);
此处 cv 是 ContentValues 的对象,它仅包含列 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' ");