오류/Database

[ORACLE] ORA-02291

빨대도둑 2024. 3. 11. 10:12

발생 상황

ORA-02291: 무결성 제약조건이 위배되었습니다.부모 키가 없습니다.

### Error updating database. 
Cause: java.sql.SQLIntegrityConstraintViolationException: 
ORA-02291: 무결성 제약조건(DWB2B.FK_COL01)이 위배되었습니다- 
부모 키가 없습니다. 
### The error may involve kr.service.theshop.rt.insertReturn-Inline 
### The error occurred while setting parameters 
### SQL: insert into temp1019(COL01) values('2') 
### Cause: java.sql.SQLIntegrityConstraintViolationException: 
ORA-02291: 무결성 제약조건(DW.FK_COL01)이 위배되었습니다- 부모 키가 없습니다.

 

쿼리에서 INSERT, UPDATE 시 무결성 제약조건에 따라 에러가 발생한 경우입니다.

부모테이블의 존재하지 않은 값을 자식테이블에 넣으려고 할떄 에러가 발생합니다.

 

해결 방식

  1. 부모테이블이 자식테이블에 들어갈 데이터를 넣어줍니다. 
  2. 관계조건인 부모테이블과 자식테이블이 연결되어 있는 외래키(Foreign Key)를 삭제합니다. 

 

외래키 확인방법

SELECT 
    CONSTRAINT_NAME,
    CONSTRAINT_TYPE,
    TABLE_NAME,
    R_CONSTRAINT_NAME,
FROM USER_CONSTRAINTS
WHERE TABLE_NAME='테이블명';

 

외래키 삭제 방법

ALTER TABLE DROP CONSTRAINT 외래키명;

 

참고 글

https://lnsideout.tistory.com/entry/ORACLE-%EC%98%A4%EB%9D%BC%ED%81%B4-ORA-02291-%EB%AC%B4%EA%B2%B0%EC%84%B1-%EC%A0%9C%EC%95%BD%EC%A1%B0%EA%B1%B4%EC%9D%B4-%EC%9C%84%EB%B0%B0%EB%90%98%EC%97%88%EC%8A%B5%EB%8B%88%EB%8B%A4-%EB%B6%80%EB%AA%A8-%ED%82%A4%EA%B0%80-%EC%97%86%EC%8A%B5%EB%8B%88%EB%8B%A4

 

[ORACLE] 오라클 ORA-02291: 무결성 제약조건이 위배되었습니다. 부모 키가 없습니다.

ORA-02291: 무결성 제약조건이 위배되었습니다.부모 키가 없습니다. 에러 발생원인 및 해결방법 ### Error updating database. Cause: java.sql.SQLIntegrityConstraintViolationException: ORA-02291: 무결성 제약조건(DWB2B.FK_CO

lnsideout.tistory.com