DB Transaction

TaeYoon Kim·2023년 11월 10일
0

기초 (치트 시트)

목록 보기
7/23
post-custom-banner

https://ko.wikipedia.org/wiki/%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4_%ED%8A%B8%EB%9E%9C%EC%9E%AD%EC%85%98

Transaction 특징 ACID
1. Atomic 원자성 : 은행 계좌 이체
트랜잭션 내의 모든 내용이 적용되거나
하나라도 안되면 모든 내용이 적용 안되야한다.
2. Consistency 일관성 :
작업 처리 결과가 항상 일관성이 있어야 한다.
트랜잭션이 진행되는 동안 DB가 변경되더라도
원래 DB에 트랜잭션 처리를 마무리 하고 변경
3. Isolation : 동기화가 중요하다.
어떤 트랜잭션이라도 다른 트랜잭션 연산 중간에
끼어들 수 없다.
4. 영구성 (Durability)
트랜잭션이 완료되면 영구적으로 반영되어야 한다.

  1. 트랜잭션 상태

    	부분 완료  	완료
    활성
    	실패 		철회
활성 : 트랜잭션이 정상적으로 실행중인 상태
부분 완료 : 모든 작업이 다 수행된 상태, 적용은 아직 안됨
완료 : 적용까지 한 상태
실패 : 트랜잭션 수행 중 오류가 발생해서 중단된 상태
철회 : 트랜잭션의 모든 작업을 다시 취소한 상태

Commit
rollback

  1. Mysql 관련 문법
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;
post-custom-banner

0개의 댓글