FK ACTIONS

부모 행이 바뀔 때 자식 FK의 처리 방식을 정한다

외래키 옵션은 부모 행 삭제나 키 변경이 일어났을 때 자식 행을 막을지, 같이 바꿀지, NULL로 비울지를 선언한다.

기본값은 차단에 가깝다

RESTRICT, NO ACTION은 참조 중인 부모 삭제를 거부한다.

자동 변경은 의도 확인이 필수

CASCADESET NULL은 데이터가 자동으로 바뀐다.

옵션 부모 삭제 시 적합한 상황
RESTRICT 참조 중이면 즉시 거부 삭제 실수를 바로 막아야 할 때
NO ACTION 검사 시점 차이가 있을 수 있으나 보통 거부 대부분 DBMS의 기본 동작
CASCADE 자식 행도 함께 삭제 주문 삭제 시 주문상세도 삭제
SET NULL 자식 FK를 NULL로 변경 부서 삭제 후 직원 부서 미정 처리
SET DEFAULT 자식 FK를 기본값으로 변경 지원 DBMS와 기본값 의미가 분명할 때

주의: CASCADE는 편하지만 한 번의 삭제가 여러 테이블로 번질 수 있다. 운영 데이터에서는 연쇄 범위를 먼저 계산한다.