메뉴 건너뛰기

2021.03.26 13:56

BEGIN, COMMIT, ROLLBACK

조회 수 315 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

우선 간단한 개념들부터 설명하자면,
MYSQL에서는 어떤 쿼리를 실행 할때,
COMMIT; 쿼리를 완전히 적용 시키느냐?
BEGIN; 실행된 적용을 취소할수 있게 하느냐?
ROLLBACK; 실행된 적용을 취소 하느냐?

를 써줌으로써 쿼리의 적용을 조정할 수 있다..

그럼 우선 설정부터 살펴보자.
MYSQL에선 ROLLBACK 명령이 제대로 실행되기 위해선 TABLE타입이
InnoDB
BerkeleyDB(BDB)

둘중 하나 이어야 한다.
보통의 MyISAM의 경우 AUTOCOMMIT 설정에 상관없이 AUTOCOMMIT가 일어난다고 보면 된다.

그리고 AUTOCOMMIT에 대해서 알아두어야 한다. AUTOCOMMIT는 말그대로 하나의 쿼리가 실행뒤에 자동으로 COMMIT가 되게 하느냐의 설정이다.

#AUTOCOMMIT setting방법 : 
set autocommit = 1; #또는 true #설정하기
set autocommit = 0; #또는 false #설정해제

#AUTOCOMMIT 확인방법 :
select @@session.autocommit 
select @@autocommit

이제 위의 환경대로 TABLE이 InnoDB인상태로 autocommit도 0또는 false로 되어 있다면,

begin; /*begin시에는 autocommit가 1로 되어 있어도 rollback이 가능하다.*/

update test set number=5 where id=1;
rollback;

위와같은 쿼리의 실행 결과는 얼마든지 되돌리거나 하는것이 가능해진다. commit를 하기 전까지 말이다.

이글은 간단한 개념만 잡아놓은 글이고 더 자세한 것은 다른곳에서 찾아보길 바란다.


List of Articles
번호 제목 날짜 조회 수
46 order by field 와 union, 원하는 대로 정렬 하기 2021.03.26 768
45 SQL 고급 file 2017.12.22 6035
44 Union 사용법. 여러 테이블의 같은 값을 한번 쿼리로 추출하기 2017.11.21 3918
43 UPDATE ~ CASE 문을 사용한 조건별 업데이트 file 2020.07.28 1396
42 [mysql,mariaDB] 컬럼 암호화, 복호화 2020.11.25 775
41 [MySQL] 백업 및 복구 2017.04.12 5392
40 [MySQL] 세로열을 가로열로 출력하기 2019.03.05 2097
39 각각의 게시판에서 제일 최근글하나씩을 모아 정렬 2016.08.30 5812
38 날짜 관련 함수 모음. 2017.12.22 3976
37 날짜와 시간 데이터 2016.12.23 5996
36 날짜형(DATETIME) 빼기 2021.03.26 147
35 다른 테이블 데이터를 원하는 테이블에 업데이트 시키기 2017.11.16 5076
34 다양한 단위의 시간차 구하기 2015.12.19 8360
33 덤프할때 한글깨짐 해결 2016.12.23 5635
32 데이타베이스 또는 테이블 정보 2016.12.23 5534
31 데이터베이스 파티셔닝이란 2017.12.28 4262
30 데이터베이스별 / 테이블별 용량 확인 하기 2023.01.10 115
29 두 테이블을 비교하여 한쪽테이블에는 있지만 다른 테이블에는 없는 값을 뽑아내보자! 2017.11.21 5387
28 문자형 데이터 2016.12.23 5646
27 백업시 캐릭터셋(charset) 지정하기 2017.04.12 5071
Board Pagination Prev 1 2 3 4 5 6 7 Next
/ 7

하단 정보를 입력할 수 있습니다

© k2s0o1d4e0s2i1g5n. All Rights Reserved