本文へスキップ
BecomeCoder

SQLのエラー · エラー9

FOREIGN KEY constraint failed ― 外部キー制約の違反

外部キーで参照している先のテーブルに、存在しない値を入れようとすると出ます。

出るコード

CREATE TABLE users (id INTEGER PRIMARY KEY, name TEXT);
CREATE TABLE orders (
    id INTEGER PRIMARY KEY,
    user_id INTEGER,
    FOREIGN KEY (user_id) REFERENCES users(id)
);
INSERT INTO orders (user_id) VALUES (999);   -- users に id=999 は無い

エラーメッセージ

Runtime error: FOREIGN KEY constraint failed

直し方

参照先のテーブルに、先にその値を持つ行を作っておきます。タイプミスで存在しない id を指定していないかも確認します。