Oracle Database TIP
Table 삭제시 외부키로 연결되어 있다면 삭제가 가능합니까 ? 5 0 21,611

by 김정식 DROP TABLE CASCADE CONSTRAINTS [2002.07.01]


질문

  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

- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^

- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입