학습용 기출·복원자료 분류 확인SQLD · 2023년 48회 SQL 기본 및 활용 · 28번
명시적인 COMMIT 없이 DML을 수행한 세션에서 ROLLBACK을 실행하면 어떻게 되는가?
1
마지막 COMMIT 이후의 미확정 변경이 취소된다.
정답 근거ROLLBACK은 현재 트랜잭션에서 아직 확정되지 않은 변경을 되돌린다. 이미 COMMIT된 내용은 일반적인 ROLLBACK으로 취소할 수 없다. 따라서 1번 보기 ‘마지막 COMMIT 이후의 미확정 변경이 취소된다.’의 적용 여부를 문제 조건과 대조해야 한다.
2
테이블 구조까지 항상 삭제된다.
오답 이유ROLLBACK은 데이터 변경을 취소할 뿐 테이블 정의를 자동으로 삭제하지 않는다. 따라서 2번 보기 ‘테이블 구조까지 항상 삭제된다.’의 적용 여부를 문제 조건과 대조해야 한다.
3
이미 COMMIT한 변경도 모두 취소된다.
오답 이유COMMIT으로 이미 확정된 변경은 같은 트랜잭션의 일반 ROLLBACK 대상이 아니다. 따라서 3번 보기 ‘이미 COMMIT한 변경도 모두 취소된다.’의 적용 여부를 문제 조건과 대조해야 한다.
4
현재 세션과 무관한 다른 세션의 변경이 취소된다.
오답 이유한 세션의 ROLLBACK은 그 세션의 미확정 트랜잭션에만 작용하고 다른 세션 변경을 취소하지 않는다. 따라서 4번 보기 ‘현재 세션과 무관한 다른 세션의 변경이 취소된다.’의 적용 여부를 문제 조건과 대조해야 한다.
ANSWER & EXPLANATION
정답 1번
핵심 판단은 1번 ‘마지막 COMMIT 이후의 미확정 변경이 취소된다.’입니다. ROLLBACK은 현재 트랜잭션에서 아직 확정되지 않은 변경을 되돌린다. 이미 COMMIT된 내용은 일반적인 ROLLBACK으로 취소할 수 없다.