참고사항
사용 환경 : macOS, 오라클11g , sql deloper를 사용합니다.
*보시기 편하게 소문자를 사용하였습니다.
상황
0. 직원정보를 담은 employee 테이블과 회사정보를 담은 company 테이블 2개의 테이블이 존재한다고 가정하자
1. employee 테이블에는 직원번호 컬럼이 존재한다./ company 테이블 역시 직원번호 컬럼이 존재한다.
2. employee테이블에 있는 직원번호 컬럼은 company테이블의 외래키이다.(참조하고 있다.)
3. 새로 신입직원이 들어와서 신입직원 정보를 넣어주려고 한다.
4. employee 테이블에 직접 신입 직원번호를 넣으려고 했다.
문제 발생
ORA-02291: integrity constraint (COMPANY.SYS_C007022) violated - parent key not found
이유 설명
1. employee의 직원번호 컬럼데이터는 company의 직원번호 컬럼에 있는 데이터만 존재할 수 있다.
2. company테이블의 존재하지 않는 신입직원번호를 바로 employee테이블에 입력하려는 건 위배되는 행동
해결
부모 테이블인 company의 직원번호 컬럼에 데이터를 넣어주고, 다시 employee테이블에 데이터를 넣어주면 된다.
'IT > Database' 카테고리의 다른 글
[DB] sql Developer와 mysql 이해하고 연결하기 in Mac (0) | 2021.11.24 |
---|---|
[DB] 프로시저 목록/내용 확인 방법 (0) | 2021.10.16 |
[DB] 테이블 이름명 변경 RENAME - 오라클,데이터베이스 (0) | 2021.10.04 |
[DB] create table 테이블 생성, 제약조건, 외래키 설정 - 오라클, 데이터베이스 (0) | 2021.10.04 |