빈 예약 테이블에 대해 Oracle 에서 다음 문장을 차례로 실행했다.… | [SQLD] SQL 개발자 기출유형 모의고사 1회 상세 페이지

1[SQLD] SQL 개발자 기출유형 모의고사 1회
빈 예약 테이블에 대해 Oracle 에서 다음 문장을 차례로 실행했다. 마지막 SELECT 결과로 나오는 예약번호는?
INSERT INTO 예약 VALUES (10, '하윤');
SAVEPOINT SP1;
INSERT INTO 예약 VALUES (20, '시우');
SAVEPOINT SP2;
DELETE FROM 예약 WHERE 예약번호 = 10;
ROLLBACK TO SAVEPOINT SP1;
INSERT INTO 예약 VALUES (30, '지아');
COMMIT;

SELECT 예약번호 FROM 예약 ORDER BY 예약번호;
1
10, 20, 30
2
30
3
10, 30
4
20, 30
해설

ROLLBACK TO SAVEPOINT SP1은 SP1 이후의 작업만 취소하므로 20 입력과 10 삭제가 모두 되돌려지고, SP1 이전의 10 입력은 남는다.

이어서 30을 입력하고 COMMIT으로 확정하므로 10과 30이 남는다.

  • 10, 20, 30이 남는 것은 SP2 까지만 되돌려 20 입력이 살아 있다고 본 결과다.
  • 30만 남는 것은 20 입력은 취소되고 10 삭제는 그대로라고 본 것이다.
  • 20과 30이 남는 것은 롤백이 10 삭제를 되돌리지 않는다고 본 것이다.

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

이어서 풀어보기

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