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)
- ORA-02291integrity constraint violated - parent key not found
- ORA-00979not a GROUP BY expression
- ORA-00918column ambiguously defined
- ORA-06550line/column PLS-... PL/SQL compilation error
- ORA-04068existing state of packages has been discarded