コンテンツへスキップ
SQL/データベースエラーエラー
23503

23503 — 外部キー制約違反

INSERT または UPDATE が外部キー制約に違反した。

postgresql

このエラーの原因

参照先の行が親テーブルに存在しないか、子行から参照されている親行を削除しようとしている。

修正方法

挿入前に参照先レコードが存在することを確認する。ON DELETE CASCADE または SET NULL を使用する。子レコードの前に親レコードを挿入する。

例

-- foreign_key_violation
INSERT INTO orders (user_id) VALUES (99999);
-- user_id 99999 does not exist in users table
公式ドキュメント

関連するエラーコード