Day13_MYSQL_ 트렌섹션(transaction)
2023. 3. 21. 16:14ㆍSQL
트랜섹션(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 |