문제
부모 테이블의 행 삭제 시 해당 행을 참조하는 자식 테이블의 행도 함께 삭제되도록 외래키를 생성하려고 한다. 적절한 옵션은?
① ON DELETE RESTRICT ② ON DELETE SET NULL ③ ON DELETE CASCADE ④ ON UPDATE CASCADE
정답
3번
해설
정답: 3. ON DELETE CASCADE는 부모 행이 삭제될 때 이를 참조하는 자식 행도 함께 삭제되도록 한다.
오답 풀이
- 1번: RESTRICT는 자식 행이 있으면 부모 행 삭제를 제한한다.
- 2번: SET NULL은 자식 외래키 값을 NULL로 변경한다.
- 3번: 자식 행까지 함께 삭제하는 옵션이다.
- 4번: 삭제가 아니라 갱신 전파와 관련된 표현이다.
보충 개념 외래키 삭제 규칙에는 RESTRICT, CASCADE, SET NULL 등이 있다. 업무적으로 자식 데이터까지 삭제되어도 되는지 신중히 판단해야 한다.