フィールド制約

フィールドに設定できる値に制限を設けます。

制約 説明
NOT NULL NULLを設定できなくする。
UNIQUE 同じ値を設定できなくする。
DEFAULT 値が設定されないときに、指定した値を初期値とする。
PRIMARY KEY 主キーとする。

違反した際の処理 (ON CONFLICT)

フィールドの制約に違反した場合の処理は、ON CONFLICTコマンドで設定します。

ON CONFLICTの設定値
パラメータ 処理 戻値
ROLLBACK トランザクションがロールバックされる SQLITE_CONSTRAINT
ABORT コマンドが中断される
FAIL コマンドが失敗とされる
IGNORE コマンドは実行されず、処理は継続される なし
REPLACE 元のデータを上書きする

例えばUNIQUE制約に違反したときにREPLACEで元のデータを上書きするには、次にように指定します。

CREATE TABLE table ( field1 UNIQUE ON CONFLICT REPLACE, field2 );