SQLD(SQL 개발자) 기출 · DDL
다음은 3개의 테이블 구조와 제약조건이다. 아래 DELETE 구문 실행 후 EMP_LOG 테이블에 남는 데이터는?

본문)
<SQL>
CREATE TABLE DEPT (
DEPT_ID NUMBER PRIMARY KEY,
DEPT_NAME VARCHAR2(50)
);
CREATE TABLE EMP (
EMP_ID NUMBER PRIMARY KEY,
EMP_NAME VARCHAR2(50),
DEPT_ID NUMBER,
CONSTRAINT FK_EMP_DEPT FOREIGN KEY (DEPT_ID)
REFERENCES DEPT (DEPT_ID)
ON DELETE CASCADE
);
CREATE TABLE EMP_LOG (
LOG_ID NUMBER PRIMARY KEY,
EMP_ID NUMBER,
ACTION VARCHAR2(50),
CONSTRAINT FK_LOG_EMP FOREIGN KEY (EMP_ID)
REFERENCES EMP (EMP_ID)
ON DELETE SET NULL
);
<아래>
DELETE FROM DEPT WHERE DEPT_ID = 10;
이 문제 풀어보기
정답 및 해설 보기
정답: 2번
DELETE FROM DEPT WHERE DEPT_ID = 10 실행 시:
EMP에서 DEPT_ID = 10인 직원 1001, 1002는 삭제됨 (ON DELETE CASCADE)
이로 인해 EMP_LOG의 1001, 1002는 EMP_ID만 NULL로 바뀜 (ON DELETE SET NULL)
EMP_ID = 1003은 DEPT 20 소속 → 영향 없음
EMP에서 DEPT_ID = 10인 직원 1001, 1002는 삭제됨 (ON DELETE CASCADE)
이로 인해 EMP_LOG의 1001, 1002는 EMP_ID만 NULL로 바뀜 (ON DELETE SET NULL)
EMP_ID = 1003은 DEPT 20 소속 → 영향 없음