ORA-02291: integrity constraint violated - parent key not found(整合性制約違反 - 親キーがない)
Oracle意味
外部キー制約に違反した。子テーブルに挿入された値に対応する親行が見つからなかった。つまり参照先のレコードが存在しない。
原因
存在しない親レコードを参照する INSERT/UPDATE、親テーブルの行がまだ挿入されていない、誤ったロード順序 (親より先に子)、または大文字小文字や空白の違いによる照合の失敗。
対処方法
先に親テーブルに該当レコードを挿入し、次に子テーブルに挿入する。参照の存在を確認する: SELECT * FROM parent_table WHERE key_col = value; 一括ロードではテーブルを正しい順序で処理する (親が先)。違反している行を特定するには、子テーブルの値を NOT IN / アンチ結合で親テーブルと比較する。
同じデータベースの他の項目
- ORA-00604error occurred at recursive SQL level(再帰 SQL レベルでエラーが発生)
- ORA-01438value larger than specified precision allowed for this column(列の精度を超える値)
- ORA-01400cannot insert NULL into (column)(列に NULL は挿入できない)
- ORA-02292integrity constraint violated - child record found(整合性制約違反 - 子レコードがある)
- ORA-00979not a GROUP BY expression(GROUP BY の式ではない)
- ORA-00918column ambiguously defined(列の定義が曖昧)
- ORA-06550line/column PLS-... PL/SQL コンパイルエラー