커피와 개발자

ON DELETE CASCADE 본문

데이터베이스/Oracle

ON DELETE CASCADE

광박이 2009. 8. 3. 09:13
728x90

ON DELETE CASCADE 는 부모테이블과 자식테이블과의 관계에서 자식테이블이 부모테이블의 PK를 참조하고 있고 자식테이블에 데이터의 값이 있다면 부모테이블은 자식테이블의 데이터의 값으로 인해 참조 무결성에러 발생으로 데이터를 삭제할 수 없다.
이 점을 생각하고 사용하는 함수가 ON DELETE CASCADE 옵션이다.
쉽게 생각하여 폴더구조를 생각하면 된다. [내문서] - [음악] 이라는 파일이 있을 경우, 내문서를 삭제하게 되면 음악이라는 데이터 역시 삭제가 된다. 이 점을 생각하고 사용하자.

CREATE TABLE emp(
    ID NUMBER(10),
    NAME VARCHAR2(20),
    CONSTRAINT PK_emp PRIMARY KEY(ID)
);

CREATE TABLE dept(
    ID NUMBER(10),
    NICK VARCHAR2(20),
   FOREIGN KEY(ID) REFERENCES emp(ID) ON DELETE CASCADE

); 

728x90
Comments