2) 특징데이터베이스의 상태를 변화(update, delete 등)시키는 기능을 수행하는 논리적인 작업 단위
트랜잭션 내에서 여러개의 SQL 명령어를 실행한다.
(하나의 명령어만 실행하는 건 의미없다.)
복수의 SQL 명령을 실행할 때 장애가 발생할경우, 세트 단위로 처리된다.
(즉, 명령 전체 취소[Rollback]하거나, 전체 확정[Commit]하는 연산한다.)
MySQL의 트랜잭션
3) 트랙잭션의 ACID 특성
트랜잭션 시작 : 자동커밋 비활성화하는 명령어
- MySQL :
START TRANSACTION
- SQL Server, PostgreSQL : BEGIN TRANSACTION
- Oracle, DBW : X
ROLLBACK
COMMIT
< 예시 >
- 트랜잭션 시작
- update
테이블명
set열명 = value
where 조건
: age열과 gender열의 값의 변경사항이 발생하였다.
- Rollback 실행
: rollback
을 실행한 결과, update로 변경한 사항이 적용되지 않았음을 확인할 수 있다.
- commit 실행
: commit
을 실행한 결과, update로 변경한 사항이 적용되었음을 확인할 수 있다.
- savepoint point1 실행
: 'id=1'인 행의 데이터를 업데이트 한 후에, 'point1' 이름으로 savepoint
지점을 설정하였다.
- rollback to point1 실행
: savepoint를 지정한 이후에 2개의 데이터를 수정한 후, 'point1' 지점으로 rolloback to
를 실행한 결과, point1 지점으로 rollback 되었음을 확인할 수 있다.