VIEW
TRANSACTION
- Atomicity(원자성) : 모든 작업이 성공하거나 아예 실패하는 성질.
- 은행에서 송금을 할 때 내 계좌에서 잔고가 빠져나가면 상대방 계좌 잔고가 올라가야 함
- 송금 중간에 오류가 나서 내 잔고는 빠졌지만 상대방 잔고는 올라가지 않는 경우 문제가 발생
- 원자성을 지키기 위해서는 송금 중간에 오류가 난 경우 내 잔고도 돌려놔야됨. 이때 TRANSACTION과 ROLLBACK을 사용
START TRANSACTION;
작업1
SAVEPOINT 세이브포인트_이름
작업2
ROLLBACK
ROLLBACK TO 세이브포인트_이름;
작업3
COMMIT
TRANSACTION
안에서의 작업은 메모리에서 일어나므로 DB에 반영되지 않음
ROLLBACK
은 트랜잭션상의 작업을 취소할 때 사용
COMMIT
은 트랜잭션상의 작업을 DB에 반영할 때 사용
ROLLBACK
은 기본적으로 트랜잭션을 시작하는 시점으로 돌아가지만 SAVEPOINT
를 설정해놓으면 세이브한 시점으로 돌아갈 수 있음
참고자료