문제
다음 트랜잭션 실행 후 최종 결과는?
SQL-- PRODUCT(ID, NAME, PRICE) INSERT INTO PRODUCT(ID, NAME, PRICE) VALUES(100, 'Mouse', 10000); INSERT INTO PRODUCT(ID, NAME, PRICE) VALUES(200, 'Keyboard', 20000); SAVEPOINT S1; UPDATE PRODUCT SET PRICE = 15000 WHERE ID = 100; SAVEPOINT S2; DELETE FROM PRODUCT WHERE ID = 200; ROLLBACK TO S1; COMMIT;
① 2건의 레코드가 남는다 ② 1건의 레코드가 남는다 ③ 0건의 레코드가 남는다 ④ 오류가 발생한다
정답
1번
해설
초기 INSERT로 2건이 저장된 뒤 SAVEPOINT S1이 설정됩니다. 그 이후 UPDATE와 DELETE가 수행되지만, ROLLBACK TO S1이 실행되면 S1 이후 작업만 취소됩니다. 따라서 UPDATE와 DELETE는 모두 취소되고, 처음 INSERT한 2건만 남은 상태로 COMMIT 됩니다.