设置整数列SQLite的默认值

Bor*_*ain 109 database sqlite android android-sqlite

我正在android中创建一个SQLite数据库.

db.execSQL("CREATE TABLE " + DATABASE_TABLE + " (" 
    + KEY_ROWID + " INTEGER PRIMARY KEY AUTOINCREMENT, "
    + KEY_NAME + " TEXT NOT NULL, " 
    + KEY_WORKED + " INTEGER, "
    + KEY_NOTE + " INTEGER);");
Run Code Online (Sandbox Code Playgroud)

是否可以为KEY_NOTE创建的每一行0(零)设置默认值(这是一个整数)?如果是这样,那么正确的代码应该是什么.

Kar*_*uri 216

使用SQLite关键字 default

db.execSQL("CREATE TABLE " + DATABASE_TABLE + " (" 
    + KEY_ROWID + " INTEGER PRIMARY KEY AUTOINCREMENT, "
    + KEY_NAME + " TEXT NOT NULL, "
    + KEY_WORKED + " INTEGER, "
    + KEY_NOTE + " INTEGER DEFAULT 0);");
Run Code Online (Sandbox Code Playgroud)

此链接很有用:http://www.sqlite.org/lang_createtable.html


fro*_*tto 6

具有默认值的列:

CREATE TABLE <TableName>(
...
<ColumnName> <Type> DEFAULT <DefaultValue>
...
)
Run Code Online (Sandbox Code Playgroud)

<DefaultValue> 是以下内容的占位符:

  • 价值文字
  • ( 表达 )

例子:

Count INTEGER DEFAULT 0,
LastSeen TEXT DEFAULT (datetime('now'))
Run Code Online (Sandbox Code Playgroud)


Nad*_*lal 6

碰巧我刚刚开始学习编码,我需要一些与您刚刚在 SQLite 中询问的类似的东西(I\xc2\xb4m using [SQLiteStudio] (3.1.1))。

\n\n

碰巧您必须将列的“约束”定义为“非空”,然后使用“默认”“约束”输入所需的定义,否则它将不起作用(我不知道这是 SQLite 还是程序要求)。

\n\n

这是我使用的代码:

\n\n
CREATE TABLE <MY_TABLE> (\n<MY_TABLE_KEY>       INTEGER    UNIQUE\n                                PRIMARY KEY,\n<MY_TABLE_SERIAL>    TEXT       DEFAULT (<MY_VALUE>) \n                                NOT NULL\n<THE_REST_COLUMNS>\n);\n
Run Code Online (Sandbox Code Playgroud)\n