티스토리 뷰

SQL/SQL 개념

COMMIT & ROLLBACK

wlsl00 2023. 2. 8. 17:38

 COMMIT과 ROLLBACK


 - 데이터를 추가, 수정, 삭제하는 데이터를 조작하는 명령어인DML(Data Manipulation Language)은 이들이 실행됨과 동시에 트랜잭션이 진행된다.


 - DML 작업이 성공적으로 처리되도록 하기 위해서는 COMMIT명령을, 작업을 취소하기 위해서는 ROLLBACK 명령으로종료해야 한다.


 - COMMIT은 모든 작업들을 정상적으로 처리하겠다고 확정하는명령어로 트랜잭션의 처리 과정을 데이터베이스에 모두 반영하기위해서 변경된 내용을 모두 영구 저장한다.


- COMMIT 명령어를 수행하게 되면 하나의 트랜잭션 과정을종료하게 된다.


- ROLLBACK은 작업 중 문제가 발생되어서 트랜잭션의 처리 과정에서 발생한 변경사항을 취소하는 명령어이다.


- ROLLBACK 명령어 역시 트랜잭션 과정을 종료한다.


- ROLLBACK은 트랜잭션으로 인한 하나의 묶음 처리가 시작되기 이전의 상태로 되돌린다.


- 트랜잭션은 여러 개의 물리적인 작업(DML 명령어)들이 모여서 이루어지는데 이러한 과정에서 하나의 물리적인 작업이라도 문제가 발생하게 되면 모든 작업을 취소해야 하므로 이들을 하나의 논리적인 작업 단위(트랜잭션)로 구성해 놓는다.


- 문제가 발생하게 되면 이 논리적인 작업 단위를 취소하는 방식으로트랜잭션을 관리한다. 


-트랜잭션은 마지막으로 실행한 커밋(혹은 롤백) 명령 이후부터 새로운 커밋(혹은 롤백) 명령을 실행하는 시점까지 수행된 모든 DML 명령들을 의미한다.


COMMIT 명령어과 ROLLBACK 명령어의 장점
▪ 데이터 무결성 보장


▪ 영구적인 저장하기 전에 데이터의 변경 사항을 확인


▪ 논리적으로 연관된 작업 그룹화


 COMMIT 명령어
▪ Transaction(INSERT, UPDATE, DELETE) 작업 내용을 실제 DB에 저장


▪ 이전 데이터가 완전히 UPDATE 됨


▪ 모든 사용자가 변경된 데이터의 결과를 볼 수 있음

 


ROLLBACK 명령어
▪ Transaction(INSERT, UPDATE, DELETE) 작업 내용을 취소


▪ 이전 COMMIT한 곳 까지만 복구

 자동 커밋
-  DDL문은 자동으로 커밋(AUTO COMMIT) 발생


-  DDL 문에는 CREATE, ALTER, DROP, RENAME,TRUNCATE 등이 있다

  SAVEPOINT
- SAVEPOINT 명령으로 트랜잭션을 작게 분할할 수 있다.


- 저장된 SAVEPOINT는 ROLLBACK TO SAVEPOINT 문을 사용하여 표시한 곳까지 ROLLBACK할 수 있다.

 

- 여러 개의 SQL 문의 실행을 수반하는 트랜잭션의 경우, 사용자가 트랜잭션 중간 단계에서 세이브포인트를 지정할 수 있다.


- 이 세이브포인트는 차후 롤백과 함께 사용해서 현재 트랜잭션 내의 특정 세이브포인트까지 ROLLBACK할 수 있다.


- 다음은 SAVEPOINT로 특정 위치를 지정하기 위한 사용 형식


- SAVEPOINT로 지정해 놓은 특정 위치로 되돌아가기 위한 사용 형식

SAVEPOINT LABEL_NAME;
ROLLBACK TO LABEL_NAME;



'SQL > SQL 개념' 카테고리의 다른 글

뷰 (View)  (0) 2023.02.07
JOIN  (1) 2023.02.06
GROUP 함수  (0) 2023.02.03
SQL형 변환 함수  (0) 2023.02.02
SQL 문자 처리 함수  (1) 2023.02.02
공지사항
최근에 올라온 글
Total
Today
Yesterday
링크
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함