外部キーで参照している先のテーブルに、存在しない値を入れようとすると出ます。
出るコード
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 を指定していないかも確認します。