FK 삭제 규칙

부모를 지울 때 자식 행을 어떻게 남길지 정한다

같은 삭제 요청이어도 정책에 따라 자식 행은 함께 사라지거나, 연결만 끊기거나, 아예 부모 삭제가 거절됩니다.

공통 시작 상태 부모 행을 삭제하려고 할 때, 자식 FK가 어떤 최종 상태로 가야 하는지 선택합니다.
부모 행 parent.id = 10
자식 행 child.parent_id = 10

CASCADE

부모 삭제를 허용하고, 연결된 자식 행도 함께 삭제합니다.

같이 삭제
삭제 직전 order_detail.order_id = 10
삭제 후 자식 행도 제거
예: 주문을 삭제하면 주문상세도 함께 정리됩니다.

SET NULL

자식 행은 남기되, FK 값을 NULL로 바꿔 연결만 끊습니다.

연결 해제
삭제 직전 emp.dept_id = 10
삭제 후 emp.dept_id = NULL
예: 부서를 삭제해도 사원 기록은 유지하고, 소속만 비웁니다.

RESTRICT / NO ACTION

자식 행이 남아 있으면 부모 삭제 자체를 거절해 참조 무결성을 즉시 지킵니다.

삭제 차단
삭제 시도 member.id = 10 삭제
결과 주문 존재 → 삭제 실패
예: 주문 이력이 있는 회원은 먼저 주문을 정리하기 전까지 삭제할 수 없습니다.

SET DEFAULT

자식 행의 FK를 미리 정한 기본값으로 바꿔, 대체 분류나 기본 소속으로 이동시킵니다.

기본값 이동
삭제 직전 item.category_id = 10
삭제 후 item.category_id = '미분류'
예: 카테고리를 삭제해도 상품은 남기고 기본 카테고리로 재배치합니다.