Table 삭제시 외부키로 연결되어 있다면.... 삭제가 가능합니까?
참조하는 테이블(child table)은 삭제 가능하지만 참조되어지는 테이블(parent table)을 삭제하려면 Cascade Constraints 옵션을 추가로 사용해야 합니다.
-- 1. EMPLOYEE 테이블에 의해서 참조되어지는 DEPARTMENT 테이블을 생성한다. SQL> CREATE TABLE department (id NUMBER(2), dname VARCHAR2(10), CONSTRAINT deparment_dname_pk PRIMARY KEY(id)); --2. FOREIGN KEY를 포함하는, DEPARTMENT 테이블을 참조하는 -- EMPLOYEE 테이블을 생성한다. SQL> CREATE TABLE employee (id NUMBER(2), name VARCHAR2(10), salary NUMBER(4), deptid NUMBER(2), CONSTRAINT employee_deptid_fk FOREIGN KEY(deptid) REFERENCES department(id)); --3. 참조되어지는 테이블을 삭제하려면 다음과 같이 에러가 발생한다. SQL> DROP TABLE department; DROP TABLE department * 1행에 오류: ORA-02449: 외래 키에 의해서 참조된 테이블에 유일/기본 키입니다 -- 4. 참조되어지는 테이블을 CASCADE CONSTRAINTS 옵션을 통해 삭제한다. SQL> DROP TABLE department CASCADE CONSTRAINTS; -- 물론 참조하는 테이블은 그냥 삭제하면 된다. SQL> DROP TABLE employee;
- 강좌 URL : http://www.gurubee.net/lecture/1420
- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^
- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.