Day13_MYSQL_ 트렌섹션(transaction)

2023. 3. 21. 16:14SQL

트랜섹션(transaction)


    -분할이 불가능한 업무처리의 단위
    -한꺼번에 수행되어야 할 연산의 모음
    
    특징
    -원자성: 트렌젝션이 데이터 베이스에 모두 반영 되거나, 전혀 반영되지 않아야 함
    -일관성: 트렌젝션의 작업처리 결과가 항상 일관성이 있어야함. 
    -독립성: 어떤 하나의 트렌젝션이라도 다른 트렌젝션의 연산에 영향을 끼치지 못함
    -영구성: 결과는 영구적으로 반영되어야 함.

용어
    commit : 모든 작업들을 정상 처리하겠다고 확정하는 명령어  해당 처리 과정을 DB에 영구적으로 저장        
    rollback : 작업 중 문제가 발생되어 트렌젝션의 처리 과정에서 발생한 변경사항을 모두 취소하는 명령어

 

1) 자동 commit 확인 및 On & Off

show variables like '%commit%';

On
set autocommit = 1;  

OFF
set autocommit = 0;

해석: commit이 들어가는 variables 를 보여달라.

 

2) 트렌섹션 예시

start transaction; 

insert into product values ('100005','고철','팔아요',100,now());

select * from product;

commit;  
rollback;
데이터 삽입을 트렌섹션으로 나누어 해보기

start로 트렌섹션 시작을 알리고 / commit 혹은 rollback으로 트렌섹션 종료

 

3) 트렌섹션 예외 사항

 

DDL문(create,drop,alter,rename,truncate) 예외         ->                 rollback이 되지 않는다 !
728x90

'SQL' 카테고리의 다른 글

Day13_MYSQL_ 사용자 추가하기, 권한 부여, 삭제  (0) 2023.03.21
Day13_MYSQL_ truncate 구문  (0) 2023.03.21
Day13_MYSQL_View  (0) 2023.03.21
Day12_MYSQL 문자열 함수  (0) 2023.03.20
Day12_MYSQL_데이터 정규화 + 서브쿼리  (0) 2023.03.20