- Arawn's Dev Blog
- Outsider's Dev Story
- Toby's Epril
- Benelog
- NHN 개발자 블로그
- SK 플래닛 기술 블로그
- OLC CENTER
- 소프트웨어 경영/공학 블로그
- 모바일 컨버전스
- KOSR - Korea Operating System …
- 넥스트리 블로그
- 리버스코어 ReverseCore
- SLiPP
- 개발자를 위하여... (Nextree 임병인 수석)
- "트위터 부트스트랩: 디자이너도 놀라워할 매끈하고 직관…
- Learning English - The English…
- real-english.com
- 'DataScience/Deep Learning' 카테…
- Deep Learning Summer School, M…
- Deep Learning Courses
민서네집
MySQL - AUTOCOMMIT 여부 확인하기 본문
[원문] http://junho85.tistory.com/11
SELECT @@AUTOCOMMIT; // AUTOCOMMIT 여부 확인
SET AUTOCOMMIT = TRUE; // AUTOCOMMIT 설정
SET AUTOCOMMIT = FALSE; // AUTOCOMMIT 해제
COMMIT; // 커밋
ROLLBACK; // 롤백
참고로 일반적으로 기본 DB Engine으로 지정되는 MyISAM 은 TRANSACTION 을 지원하지 않기 때문에
ROLLBACK이니 COMMIT이니 무의미 하다.
TRANSACTION을 지원하지 않으면 무조건 AUTOCOMMIT된다고 보면 된다.
그러므로 TRANSACTION기능을 사용하고자 한다면 TABLE을 생성할때 TRANSACTION을 지원하는 DB엔진을 사용하면 된다.
TRANSACTION기능을 지원하지 않는 DB엔진을 사용하면 AUTOCOMMIT이 FALSE라도 바로바로 적용되니 주의하도록 하자.
나는 지금 MySQL 5.6 버전을 사용 중인데, AUTOCOMMIT 을 FALSE 로 하니, TRANSACTION 이 적용되었다. 나는 디폴트로 사용 중인데, Table Engine을 보니 InnoDB 로 되어 있었다. 지금은 디폴트가 InnoDB 로 되어 있나보다.
Spring MVC 프레임워크에서 개발 DB로 MySQL을 사용 중인데,
SELECT @@AUTOCOMMIT; 결과가 1 이 나온다.
그래도 Transaction Test 를 해 보니 Runtime Error 가 발생하면 Rollback 이 잘 되었다.
아마도 Spring MVC 프레임워크에서 DB 에 연결할 때 AUTOCOMMIT 모드를 FALSE 로 바꿔서 연결하는것 같다.
MySQL 에서 autocommit 속성을 고정시키기 위해서는
[참고] http://dev.mysql.com/doc/refman/5.6/en/server-system-variables.html#sysvar_autocommit
나는 Windows7 운영체제를 사용 중인데, my.ini 파일이 아래 경로에 설치되어 있다.
C:\ProgramData\MySQL\MySQL Server 5.6
[mysqld] 섹션 밑에
autocommit=0
라고 적어주면 된다.
< MySQL Parameter 값 모두 조회하기 >
show variables;
Variable_name autocommit 의 Value가 ON 인지 OFF 인지 확인한다.
'Database > MySQL' 카테고리의 다른 글
CODE NAME 을 반환하는 MySQL Function (0) | 2013.06.07 |
---|---|
UPPER ID로 최상위노드 찾아가는 MySQL Function (0) | 2013.06.07 |
SQL state [HY000]; error code [1030]; Got error -1 from storage engine (0) | 2013.05.21 |
MySQL - selectKey 사용하기 (0) | 2013.05.09 |
MySQL에서 millisecond 나 microsecond 단위로 저장하기 (0) | 2013.05.08 |