본문 바로가기
프로젝트(종료)/SQLD 자격증 따기

ON DELETE CASCADE와 SET NULL

by 일말고프로젝트 2021. 3. 3.

먼저 이해해야 할 큰 개념은 무결성 제약 조건이다.

 

무결성 제약 조건

 

데이터 무결성 : 데이터를 인가하지 않은 방법으로 변경/삭제 할 수 없도록 보호하는 성질

위 개념으로 무결성 제약 조건을 이해해 보면 제약하는 조건에 있어, 허가된 계정 외에 데이터를 변경/삭제 할 수 없도록 보호하는 성질이라고 볼 수 있다. 데이터베이스의 5가지 제약조건은 다음과 같다.

 

위 다섯 가지 중에 FOREIGN KEY(외래키)는 해당 컬럼에 참조하는 테이블의 값들만 사용한다는 의미다. 여기서 참조 무결성 원칙에 의해 참조 테이블의 본래 데이터에 대한 제약 조건이 필요하다. 그 4가지 옵션은 다음과 같다.

 

MYSQL 외래키(Foreign key) 지정 시 
on delete rule(삭제 시), on update rule(변경 시) 옵션 지정

RESTRICT, CASCADE, NO ACTION, SET NULL

1. RESTRICT : 개체를 변경/삭제할 때 다른 개체가 변경/삭제할 개체를 참조하고 있을 경우 변경/삭제가 취소됩니다.(제한)

2. CASCADE : 개체를 변경/삭제할 때 다른 개체가 변경/삭제할 개체를 참조하고 있을 경우 함께 변경/삭제됩니다.

3. NO ACTION : MYSQL에서는 RESTRICT와 동일합니다.

4. SET NULL : 개체를 변경/삭제할 때 다른 개체가 변경/삭제할 개체를 참조하고 있을 경우 참조하고 있는 값은 NULL로 세팅됩니다.

출처: https://h5bak.tistory.com/125 [이준빈은 호박머리]

+ SET DEFAULT : 개체를 변경/삭제할 때 다른 개체는 DEFAULT값으로 세팅됨

 

결국 CASCADE와 SETE NULL 개념은 똑같이 따라갈거냐 없애 버릴거냐의 차이!

'프로젝트(종료) > SQLD 자격증 따기' 카테고리의 다른 글

PK와 FK  (0) 2021.03.04
DML, DDL, DCL, TCL에 대해  (0) 2021.03.03
UNION ALL 과 UNION DISTINCT  (0) 2021.03.02
0. 데이터 베이스 이해하기  (0) 2021.03.01
SQL 공부를 시작하기 전에  (0) 2021.03.01

댓글