다음 정의와 데이터에서 DELETE 문을 실행한 뒤 (계약 행 수, 청… | [SQLD] SQL 개발자 기출유형 모의고사 10회 상세 페이지

1[SQLD] SQL 개발자 기출유형 모의고사 10회
다음 정의와 데이터에서 DELETE 문을 실행한 뒤 (계약 행 수, 청구 행 수)로 옳은 것은?

[계약]

계약번호고객명
501윤채원
502장태민
503홍유나

[청구]

청구번호계약번호금액
1501100
250240
350160
450390
550230
CREATE TABLE 청구 (
  청구번호 INT PRIMARY KEY,
  계약번호 INT REFERENCES 계약(계약번호)
           ON DELETE CASCADE,
  금액     INT
);

DELETE FROM 계약 WHERE 계약번호 = 501;
1
2, 4
2
3, 5
3
2, 3
4
2, 5
해설

ON DELETE CASCADE 는 부모 행이 삭제될 때 그 행을 참조하는 자식 행도 함께 삭제하므로, 계약 501과 그 청구 2건이 지워져 (2, 3) 이 된다.

다른 계약을 참조하는 청구 3건은 영향을 받지 않고 그대로 남는다.

  • (2, 5) 는 자식 행을 남기고 FK 만 NULL 로 바꾸는 SET NULL 의 동작이다.
  • (3, 5) 는 자식이 있으면 부모 삭제를 막는 RESTRICT 의 동작이다.
  • (2, 4) 는 연쇄 삭제가 자식 한 건에만 적용된다고 본 값이다.

오류나 개정된 내용이 보이면 알려주세요

이어서 풀어보기

[SQLD] SQL 개발자 기출유형 모의고사 10회 50문항 이어서 보기문제·정답·해설을 한 페이지에서 이어서 볼 수 있어요SQLD SQL 개발자 실전 모의고사 암기장 전체 보기