본문 바로가기
Database/MySQL

Chapter 10. transaction

by 더 이프 2023. 2. 3.
728x90

1. transaction

 ⦁ transaction은 데이터베이스 내에서 하나의 그룹으로 처리되어야 하는 명령문들을 모아 놓은 논리적 작업 단위

 ⦁ 여러 명령어의 집합을 하나의 처리로 다루는 기능

 ⦁ 모든 명령어가 정상적으로 처리되면 commit을 통해 정상 종료됨

 ⦁ 하나의 명령어라도 잘못되면 모두 취소되고 rollback을 통해 원상 복구됨

 ⦁ savepoint를 통해 원하는 지점으로 rollback 가능

 ⦁ savepoint를 통해 원하는 지점으로 rollback 가능

 ⦁ transaction은 원자성, 일관성, 독립성, 지속성의 특징을 가짐

 

a. transaction 상태

 ⦁ Active : transaction 실행중인 상태

 ⦁ Failed : transaction 실행중 오류가 발생하여 중단된 상태

 ⦁ Aborted : transaction이 비정상적으로 종료되어 롤백 연산을 수행한 상태

 ⦁ Partially Committed : transaction의 모든 명령어를 실행 후, commit이 실행되기 직전의 상태

 ⦁ Commit : transaction이 성공적으로 종료되어 commit연산을 실행한 후의 상태

transaction의 상태

 

2. Example

a. transaction

#transaction 시작
start transaction;

#원하는 저장지점을 정함
savepoint sp3;

insert into user_mst
values (0, 'jjj', '1234', '김준일', 'jjj@gmail.com');

select * from user_mst;

#명령을 실행하기 전으로 돌림
rollback to sp1;

#transaction을 끝냄
commit;