여니의 프로그래밍 study/MySQL

[MySQL] Workbench에서 제약사항 추가하기

여니's 2022. 5. 16. 21:53

 

회원 탈퇴 시,

해당 회원과 외래키로 연결되어 있는 다른 테이블의 데이터는

유지하는 방법을 찾아보았다.

 

외래키에 적용할 수 있는 제약사항은 총 4가지가 있다.

(참고로, on delete , on update 옵션 각각 선택할 수 있다)

 

1. RESTRICT <제한>

: 개체(회원 테이블) 변경/삭제 시,

다른 개체(게시글 테이블)가 해당 개체(회원 테이블)를 참조하고 있을 경우,

해당 개체의 변경/삭제는 제한된다.

 

 

2. CASCADE

: 개체(회원 테이블) 변경/삭제 시, 

다른 개체(게시글 테이블)가 해당 개체(회원 테이블)를 참조하고 있을 경우,

모든 개체(회원 테이블의 개체, 게시글 테이블의 개체)가 변경/삭제된다.

 

 

3. NO ACTION

: 개체(회원 테이블) 변경/삭제 시, 

다른 개체(게시글 테이블)가 해당 개체(회원 테이블)를 참조하고 있을 경우,

해당 개체(회원 테이블)만 변경/삭제되고,

참조하고 있는 개체(게시글 테이블)은 변동이 없다.

 

 

4. SET NULL

: 개체(회원 테이블) 변경/삭제 시, 

다른 개체(게시글 테이블)가 해당 개체(회원 테이블)를 참조하고 있을 경우,

해당 개체의 변경/삭제는 제한되고,

참조하고 있는 개체(게시글 테이블)의 값은 NULL로 세팅된다.

 

 

아래쪽에 Foreign Keys를 누르고

 

원하는 제한조건을 선택해주면 끝!

 

 

참고로 해당 작업은

외래키를 포함하고 있는 테이블(참조하는 테이블=게시글 테이블)에서 

진행해줘야 한다.