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);");
作成されるすべての行のKEY_NOTE
(整数)のデフォルト値を0
(ゼロ)に設定することは可能ですか?もしそうなら、正しいコードはどうあるべきか。
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);");
このリンクは便利です: http://www.sqlite.org/lang_createtable.html
デフォルト値を持つ列:
CREATE TABLE <TableName>(
...
<ColumnName> <Type> DEFAULT <DefaultValue>
...
)
<DefaultValue>
は以下のプレースホルダーです:
(
式)
例:
Count INTEGER DEFAULT 0,
LastSeen TEXT DEFAULT (datetime('now'))
コーディングを学び始めたばかりで、SQLiteで質問したのと同じようなものが必要でした([SQLiteStudio](3.1.1)を使用しています)。
列の「制約」を「Not Null 'その後、'Default ''制約 'または動作しません(これがSQLiteであるかプログラム要件であるかはわかりません)。
私が使用したコードは次のとおりです。
CREATE TABLE <MY_TABLE> (
<MY_TABLE_KEY> INTEGER UNIQUE
PRIMARY KEY,
<MY_TABLE_SERIAL> TEXT DEFAULT (<MY_VALUE>)
NOT NULL
<THE_REST_COLUMNS>
);