SQLite で、同じ id の行が既にあれば何もせずに飛ばしたい。空欄に入るキーワードを書いてください。
INSERT OR ____ INTO users(id, name)VALUES (1, 'ann');正答
正答
IGNORE解説
INSERT OR IGNORE は主キーや UNIQUE 制約に違反する行をエラーにせず黙って飛ばすので、既存の行はそのまま残る。似た INSERT OR REPLACE は既存の行を削除してから新しい行を入れるため、INSERT で指定しなかった列が既定値や NULL に戻り、データが消える。「重複したら何もしない」つもりで REPLACE を使うのは危険。OR ABORT(既定)や OR FAIL はエラーになる。
参考: www.sqlite.org
この問題を含む SQL のテストを制限時間つきで解く
SQLクイズへ