こんにちは!
今回はSQLite3はデフォルトで外部キー制約が無効になっていることについてまとめます。
何が起きるか
- 外部キー制約を設定している列に対して、外部キーの参照先の列に存在しない値をINSERTできる
対処法
- 下記コマンドをSQLに接続したときに毎回実行する
PRAGMA foreign_keys=true;
おわりに
制約を設定しているはずなのに、デフォルトで無効なのはびっくりしますね。無効なIDを設定してしまわないように、外部キーの制約は有効にした上で活用していこうと思います。
17/100