학습용 기출·복원자료 분류 확인SQLD · 2025년 58회 SQL 기본 및 활용 · 46번
다음 트랜잭션 실행 결과로 올바른 것은?
create table t1 (no number);
insert into t1 values (1);
insert into t1 values (2);
savepoint sv1;
update t1 set no=4 where no=1;
savepoint sv1;
delete from t1 where no >= 2;
rollback to sv1;
insert into t1 values(3);
commit;
select max(no) from t1;
1
1
오답 이유‘1’은 계산된 정답 ‘4’과 일치하지 않는다. ROLLBACK TO sv1에 의해 DELETE 작업만 취소되고 이전의 UPDATE(1->4)는 유지된다. 이후 3이 입력되어 데이터는 (4, 2, 3)이 되므로 MAX 값은 4이다. 따라서 1번 보기 ‘1’의 적용 여부를 문제 조건과 대조해야 한다.
2
2
오답 이유‘2’은 계산된 정답 ‘4’과 일치하지 않는다. ROLLBACK TO sv1에 의해 DELETE 작업만 취소되고 이전의 UPDATE(1->4)는 유지된다. 이후 3이 입력되어 데이터는 (4, 2, 3)이 되므로 MAX 값은 4이다. 따라서 2번 보기 ‘2’의 적용 여부를 문제 조건과 대조해야 한다.
3
3
오답 이유‘3’은 계산된 정답 ‘4’과 일치하지 않는다. ROLLBACK TO sv1에 의해 DELETE 작업만 취소되고 이전의 UPDATE(1->4)는 유지된다. 이후 3이 입력되어 데이터는 (4, 2, 3)이 되므로 MAX 값은 4이다. 따라서 3번 보기 ‘3’의 적용 여부를 문제 조건과 대조해야 한다.
4
4
정답 근거ROLLBACK TO sv1에 의해 DELETE 작업만 취소되고 이전의 UPDATE(1->4)는 유지된다. 이후 3이 입력되어 데이터는 (4, 2, 3)이 되므로 MAX 값은 4이다. 따라서 4번 보기 ‘4’의 적용 여부를 문제 조건과 대조해야 한다.
ANSWER & EXPLANATION
정답 4번
핵심 판단은 4번 ‘4’입니다. ROLLBACK TO sv1에 의해 DELETE 작업만 취소되고 이전의 UPDATE(1->4)는 유지된다. 이후 3이 입력되어 데이터는 (4, 2, 3)이 되므로 MAX 값은 4이다.