새소식

반응형
250x250
💾 Database/🥃 Oracle

[Oracle]제약조건 On delete Cascade, On delete set null

  • -
728x90
반응형
On delete Cascade

 

부모 릴레이션이 삭제될 경우 자식 릴레이션도 같이 삭제되는 제약조건을 말한다.

 

 

*적용 방법*

 

1.테이블 생성 시 설정

CONSTRAINT 외래키 이름 FORIEGN KEY(외래키로 설정할 컬럼) REFERENCES 부모 테이블(참조하는 컬럼)
ON DELETE CASCADE;

 

 

2.테이블 생성 후 설정 수정

이미 외래키를 설정한 상태에서 수정해야 한다면 다음과 같이 기존 외래키 삭제 후 재설정하면 된다.

ALTER TABLE 자식테이블 DROP FOREIGN KEY 외래키 이름;
ALTER TABLE 자식테이블 
ADD CONSTRAINT 외래키 이름 FORIEGN KEY(외래키로 설정할 컬럼) REFERENCES 부모 테이블(참조하는 컬럼) ON DELETE CASCADE;

 

 

*예시*

위 : 부모 테이블 / 아래 : 자식 테이블

 

위의 부모 테이블에서 B_NUM이 5인 튜플을 삭제했을 때,

아래 자식 테이블에서도 B_NUM이 5인 튜플이 삭제된다.

 

On delete set null

 

부모 릴레이션이 삭제될 경우 자식 릴레이션의 값이 null로 바뀌는 제약조건을 말한다.

 

 

*적용 방법*

 

1.테이블 생성 시 설정

CONSTRAINT 외래키 이름 FORIEGN KEY(외래키로 설정할 컬럼) REFERENCES 부모 테이블(참조하는 컬럼)
ON DELETE SET NULL;

 

 

2.테이블 생성 후 설정 수정

이미 외래키를 설정한 상태에서 수정해야 한다면 다음과 같이 기존 외래키 삭제 후 재설정하면 된다.

ALTER TABLE 자식테이블 DROP FOREIGN KEY 외래키 이름;
ALTER TABLE 자식테이블 
ADD CONSTRAINT 외래키 이름 FORIEGN KEY(외래키로 설정할 컬럼) REFERENCES 부모 테이블(참조하는 컬럼) ON DELETE SET NULL;

 

 

*예시*

 

위 : 부모 테이블 / 아래 : 자식 테이블

 

위의 부모 테이블에서 튜플(회원 정보)을 삭제했을 때,

아래 자식 테이블에서 해당 회원의 ID가 NULL로 변한다.

 

728x90
반응형

'💾 Database > 🥃 Oracle' 카테고리의 다른 글

[Oracle] rownum이란?  (0) 2024.03.22
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.