[ORACLE] CASCADE, SET NULL

privatekim·2024년 6월 26일
0

ORACLE

목록 보기
29/38

CASCADE

FK와 같은 종속제약과 관련해서 참고하고 있는 조건, 데이터들을 먼저 지우고 target을 제거한다.

테이블 제거

DROP TABLE target CASCADE CONSTRAINT;

위의 경우는 target 테이블의 pk 또는 uk를 가진 칼럼을 다른 테이블에서 참조하고 있을 때 사용할 수 있다.

위 조건을 실행시키면 해당 테이블을 참조하는 데이터들 또한 전부 삭제가 진행된다.

FK CASCADE 옵션 부여

ALTER TABLE target add CONSTRAINT target_id_pk FOREIGN KEY (target_id) REFERENCES source(source_id) ON DELETE CASCADE;

이와 같이 FK를 지정하고 마지막에 ON DELETE CASCADE옵션을 통해 부여할 수 있다.

이렇게 되면 source_id의 특정 값을 삭제할 때 target_id의 값도 같이 삭제되는 것을확인할 수 있다.

즉 delete + delete 가 실행되는 것이다.

제약조건 CASCADE

ALTER TABLE target DROP CONSTRAINT target_id_pk CASCADE;

테이블이 삭제될 때 해당 제약조건도 같이 삭제됨.

0개의 댓글