ORA-02292: integrity constraint violated - child record found(整合性制約違反 - 子レコードがある)
Oracle意味
親行を削除するかそのキーを変更しようとしたが、依存する子レコードが存在するため外部キー制約が許可しなかった。
原因
子テーブルにレコードがある親行を DELETE しようとした、FK が ON DELETE CASCADE なしで定義されている、依存レコードを先に整理していない。
対処方法
先に依存する子レコードを削除するか別の親レコードに移し、その後で親行を削除する。業務ルールが許すなら、外部キーを ON DELETE CASCADE で作り直す: ALTER TABLE child DROP CONSTRAINT fk_name; ALTER TABLE child ADD CONSTRAINT fk_name FOREIGN KEY (my_column) REFERENCES parent(key_col) ON DELETE CASCADE; 依存行を特定するには、親キーで子テーブルを照会する。
同じデータベースの他の項目
- ORA-01438value larger than specified precision allowed for this column(列の精度を超える値)
- ORA-01400cannot insert NULL into (column)(列に NULL は挿入できない)
- ORA-02291integrity constraint violated - parent key not found(整合性制約違反 - 親キーがない)
- ORA-00979not a GROUP BY expression(GROUP BY の式ではない)
- ORA-00918column ambiguously defined(列の定義が曖昧)
- ORA-06550line/column PLS-... PL/SQL コンパイルエラー
- ORA-04068existing state of packages has been discarded(パッケージの既存の状態が破棄された)