문제
DEPT(DEPTNO PK, DNAME) 테이블에 (10, '인사'), (20, '재무')만 존재한다. 다음 INSERT 문을 차례로 실행할 때의 결과로 옳은 것은?
① 두 문장 모두 성공하여 4개 행이 된다 ② 두 문장 모두 PK 위반으로 실패하여 2개 행 그대로이다 ③ 두 번째 INSERT가 PK(DEPTNO=20 중복)를 위반해 실패하고, 첫 번째 INSERT만 반영되어 3개 행이 된다 ④ 첫 번째 INSERT가 실패하고 두 번째만 반영되어 3개 행이 된다
정답
3번
해설
첫 번째 INSERT는 새 키 30이므로 성공한다. 두 번째 INSERT는 DEPTNO=20이 이미 존재해 기본키(PK) 제약을 위반하므로 그 문장만 실패하고, 먼저 성공한 30 행은 남는다. 따라서 (10, 20, 30) 3개 행이 되어 ③이 정답이다. PK 중복은 INSERT 문 단위로 거부될 뿐 이미 반영된 행을 되돌리지 않는다.