SQLD관리 구문SAVEPOINT난이도 4MCQ

SQLD SAVEPOINT 기출문제 #3610

문제

결과 값으로 옳은 것은?

SQL
CREATE TABLE TAB1 (COL1 NUMBER, COL2 NUMBER); INSERT INTO TAB1 VALUES (1, 2); INSERT INTO TAB1 VALUES (2, 1); INSERT INTO TAB1 VALUES (3, 4); SAVEPOINT 1; UPDATE TAB1 SET COL1=4 WHERE COL2<=2; SAVEPOINT 2; DELETE FROM TAB1 WHERE COL2=2; ROLLBACK SAVEPOINT 2; INSERT INTO TAB1 VALUES (4, 1); COMMIT; SELECT COUNT(*) FROM TAB1 WHERE COL1=4;

① 1 ② 2 ③ 3 ④ 4

정답

3

해설

정답: 3. UPDATE 후 COL2가 1 또는 2인 기존 두 행의 COL1이 4가 되고, DELETE는 SAVEPOINT 2로 롤백되어 취소된다. 이후 (4,1)이 추가되므로 COL1=4인 행은 총 3개이다.

오답 풀이

  • 1번: UPDATE로 변경된 행과 INSERT 행을 모두 반영하지 않은 결과이다.
  • 2번: UPDATE된 (4,1) 행을 누락한 결과이다.
  • 3번: UPDATE된 2행과 INSERT된 1행을 합쳐 3개이므로 옳다.
  • 4번: COL1=4인 행은 4개가 아니다.

보충 개념 SAVEPOINT 이후 ROLLBACK TO SAVEPOINT를 수행하면 해당 저장점 이후의 변경만 취소된다. SAVEPOINT 2 이후의 DELETE는 취소되지만, SAVEPOINT 2 이전의 UPDATE는 유지된다.

SQLD 시험 준비 가이드

이런 문제 20~50개를 한 번에 풀어보세요

매번 새로 추가되는 모의고사 + 오답 자동 복습 + 회차별 실력 추적. 회원가입 후 무료 이용.

[SQLD] SAVEPOINT 관리 구문 기출 #3610 | 문어CBT