쏭의 개발 블로그

[SQL] 데이터베이스 - TCL 본문

DB

[SQL] 데이터베이스 - TCL

songu1 2023. 1. 31. 14:07

TCL(Transaction Control Language)

트랜잭션을 제어하는 명령어

1. ROLLBACK

  • 보류중인 모든 데이터 변경사항을 폐기.
  • 현재 트랜잭션 종료
  • 직전 commit 직후 단계로 회귀

2. COMMIT

  • 보류중인 모든 데이터 변경사항을 영구적으로 적용.
  • 현재 트랜잭션 종료

3. SAVEPOINT

  • rollback할 포인트 지정

 

단계별 특징

1. COMMIT전/ROLLBACK전

  • 이전 데이터 상태 복구(ROLLBACK)가능
  • 현재 사용자 : SELECT - FROM으로 DML 작업 결과 확인 가능
  • 다른 사용자 : COMMIT 전 DML 작업결과 확인 불가
  • 행 잠금 : 다른 사용자가 영향을 받는 행의 데이터 변경 불가

2. COMMIT 후

  • 보류 중인 변경사항들을 확정, 영구적용 → DB에 저장
  • 이전 데이터 상태 겹쳐씀
  • 모든 사용자가 DML 결과 확인 가능
  • 관련있는 행 잠금 해제 → 다른 사용자의 접근/편집 가능
  • SAVEPOINT가 지워짐

'DB' 카테고리의 다른 글

[DB] Transaction Isolation Level 트랜잭션 고립수준  (1) 2023.02.01
[DB] 트랜잭션(Transaction)  (0) 2023.01.31
[DB] SQL 문법 정리 - DDL, DML  (0) 2023.01.31
[DB] 정규화  (0) 2023.01.31
[DB] 이상현상(Anomaly)  (0) 2023.01.31