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

标签 android database sqlite android-studio android-sqlite

我有一个简单的表格。我正在尝试为 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);    

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

最佳答案

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

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 .

关于android - 如何为 Sqlite 中的 TEXT 列设置默认值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34916028/

相关文章:

android - 使用 osmdroid-android-3.0.7 运行时无法访问资源图标

android - Dagger 2 : Module must be set

android - 在 Android 中,如何使登录按钮相对于 EditText 禁用?

java - For循环在Hibernate中保存数据而不添加所有项目

android - 将iOS coredata导入android sqlite

java - 找不到与给定名称匹配的资源(在 'value' 处,值为 '@string/facebook_app_id' )

database - Redshift 中的 sortkey 内部如何工作?

mysql数据库自动分区

Android Cursor 奇怪的行为

c++ - Unicode SQLDriverConnectW() : [unixODBC][Driver Manager]Data source name not found, 且未指定默认驱动程序