DBAtlas · データベース運用アトラス

23503: foreign_key_violation

PostgreSQL

意味

FOREIGN KEY 制約に違反した。挿入/更新された行が参照する親行が存在しないか、削除しようとした親行にまだ依存する子行がある。

原因

存在しない親キーを参照する INSERT/UPDATE、まだ参照されている親行の削除/更新の試行、または誤った順序でのデータロード (子が先、親が後)。

対処方法

先に親行を挿入し、次に子行を挿入する。削除時にカスケード動作が必要なら、制約を ON DELETE CASCADE または ON DELETE SET NULL で定義する。一括ロードでは親子の順序でデータをロードする。参照している行を特定する: SELECT * FROM child WHERE fk_column = value。

DBAtlas で開く →

同じデータベースの他の項目