Transaction 특징 ACID
1. Atomic 원자성 : 은행 계좌 이체
트랜잭션 내의 모든 내용이 적용되거나
하나라도 안되면 모든 내용이 적용 안되야한다.
2. Consistency 일관성 :
작업 처리 결과가 항상 일관성이 있어야 한다.
트랜잭션이 진행되는 동안 DB가 변경되더라도
원래 DB에 트랜잭션 처리를 마무리 하고 변경
3. Isolation : 동기화가 중요하다.
어떤 트랜잭션이라도 다른 트랜잭션 연산 중간에
끼어들 수 없다.
4. 영구성 (Durability)
트랜잭션이 완료되면 영구적으로 반영되어야 한다.
트랜잭션 상태
부분 완료 완료
활성
실패 철회
활성 : 트랜잭션이 정상적으로 실행중인 상태
부분 완료 : 모든 작업이 다 수행된 상태, 적용은 아직 안됨
완료 : 적용까지 한 상태
실패 : 트랜잭션 수행 중 오류가 발생해서 중단된 상태
철회 : 트랜잭션의 모든 작업을 다시 취소한 상태
Commit
rollback
SELECT @@autocommit;
Show variables LIKE 'AUTOCOMMIT';
Set AUTOCOMMIT = False;
Set AUTOCOMMIT = True;
show databases;
select * from employees.Tables;
commit;
select * from employees where emp_no = '10001';
rollback;
update employees set gender = 'F' where emp_no = '10001';
savepoint A;
rollback to A;