본문 바로가기

프로그래밍/SQL

[SQL 요약 정리] 1-9. TRANSACTION CONTROL

9. TRANSACTION CONTROL


1) Transaction의 개념

- Transaction: 논리적인 업무의 작업단위 의미

- Transaction Control LANGUAGE

SAVEPOINT // 현재 트랜잭션에 savepoint 지정

COMMIT // 아직 저장되지 않은 변경사항을 DB에 저장하고 현 트랜잭션 종료

ROLLBACK [TO SAVEPOINT명] // 아직 저장되지 않은 모든 변경사항 취소 후 트랜잭션 종료

- 구성: 데이터의 영구적인 변경을 하는 DML, 하나의 DDL, 하나의 DCL

- 트랜잭션의 종료: COMMIT OR ROLLBACK / DDL, DCL명령 / error, system crash, exit 등


2) 암시적(Implicit) 트랜잭션 제어 명령어

- 자동 COMMIT: DDL, DCL명령 실행 / COMMIT, ROLLBACK 없이 SQL*Plus 정상 종료

- ROLLBACK: SQL*Plus의 비정상 종료 혹은 시스템 실패

- COMMIT, ROLLBACK 이전의 데이터 상태

현재 사용자는 작업 결과 확인 가능하지만 다른 사용자는 확인 불가

변경된 행은 Lock 설정이 되어서 다른 User 변경 불가

- ROLLBACK후의 데이터 상태

데이터 변경사항 취소, 이전 데이터 재저장, 관련 행에 대한 LOCK 해제


3) SAVEPOINT를 이용한 ROLLBACK

- 현 트랜잭션 중에 위치 지정 가능

- 명령어: ROLLBACK TO SAVEPOINT