oracle sqlplus 테이블 데이터 삽입 시 '부모 키 없음' 오류 질문.
조회수 871회
현재 oracle sqlplus를 공부 중인 학생입니다.
책을 보며 초반 부분에 테이블 생성 한 뒤 데이터를 삽입 시 오류가 발생하여 질문 드립니다.
DEPTNO DNAME LOC
---------- ---------------------------- --------------------------
10 ACCOUNTING NEW WORK
20 RESEARCH DALLAS
30 SALES CHICAGO
40 OPERATIONS BOSTON
위의 것이 dept 테이블
create table emp(
empno number(4)
constraint pk_emp primary key,
ename varchar2(10),
job varchar2(9),
mgr number(4)
constraint fk_mgr references emp(empno),
hiredate date,
sal number(7,2),
comm number(7,2),
deptno number(2)
constraint fk_deptno references emp(empno));
emp 테이블은 위의 형식으로 만들었고
insert into emp values (7839,'KING','PRESIDENT',NULL,
2 to_date ('17-11-1981','dd-mm-yyyy'),5000,NULL,10);
insert into emp values (7839,'KING','PRESIDENT',NULL,
*
1행에 오류:
ORA-02291: 무결성 제약조건(SYS.FK_DEPTNO)이 위배되었습니다- 부모 키가 없습니다
데이터 입력 시 이런 식으로 오류가 발생합니다.
부모 키, 자식 키가 뭔지도 모르겠고 책 초반에 아무런 설명 없이 오류가 뜨니 당황스럽네요..
검색을 해봐도 해결 방법을 찾을 수 없어 이렇게 질문드립니다.
해결 방법 알려주시면 감사하겠습니다.
-
(•́ ✖ •̀)
알 수 없는 사용자
1 답변
-
관계형데이터베이스(RDB)에서 테이터의 정합성 유지를 위해 제약조건(constraint) 를 사용합니다. 사원테이블(EMP) 생성 시 사번(DEPT_NO)에 constraint 를 사용하였으며 EMP 테이블에 데이터 INSERT 시 10이라는 부서코드로 등록을 하려고 할때 내부적으로 DEPT 테이블에 DEPT_NO가 10인 데이터를 찾게 됩니다. INSERT SQL 문에는 문제가 없어 보입니다. emp table 삭제 후 아래처럼 생성하시기 바랍니다. dept_no constraint가 잘못 생성되었습니다.
create table emp( empno number(4) constraint pk_emp primary key, ename varchar2(10), job varchar2(9), mgr number(4) constraint fk_mgr references emp(empno), hiredate date, sal number(7,2), comm number(7,2), deptno number(2) constraint fk_deptno references dept(deptno));
테이블삭제는 drop table emp; 입니다.
-
(•́ ✖ •̀)
알 수 없는 사용자
-
댓글 입력