준호씨의 블로그

MySQL과 AUTOCOMMIT 여부 확인 본문

개발이야기

MySQL과 AUTOCOMMIT 여부 확인

준호씨 2008. 2. 22. 11:36
반응형
자~ 이번에도 일단 결론부터 적어 본다

SELECT @@AUTOCOMMIT;   // AUTOCOMMIT 여부 확인

SET AUTOCOMMIT = TRUE;   // AUTOCOMMIT 설정
SET AUTOCOMMIT = FALSE;   // AUTOCOMMIT 해제

COMMIT; // 커밋
ROLLBACK; // 롤백

다른건 명령어는 어느정도 추측이 가능했지만 AUTOCOMMIT 여부 확인은 MySQL을 잘 알지 않는 이상 쉽게 추측하긴 좀 힘들법하다. 나도 골뱅이(@)하나까지는 넣어봤지만 원하는 값이 안나와서 인터넷 찾다 보니 골뱅이를 두개 넣어야 된다고 나온걸 발견할 수 있었다.
MySQL에서는 일반적으로 환경변수를 얻어 올때 골뱅이를 두개씩 넣는것 같다.

환경
MySQL : 5.0.27
DB Engine : InnoDB
OS : Windows XP

참고로 일반적으로 기본 DB Engine으로 지정되는 MyISAM 은 TRANSACTION 을 지원하지 않기 때문에
ROLLBACK이니 COMMIT이니 무의미 하다.
TRANSACTION을 지원하지 않으면 무조건 AUTOCOMMIT된다고 보면 된다.

그러므로 TRANSACTION기능을 사용하고자 한다면 TABLE을 생성할때 TRANSACTION을 지원하는 DB엔진을 사용하면 된다.
TRANSACTION기능을 지원하지 않는 DB엔진을 사용하면 AUTOCOMMIT이 FALSE라도 바로바로 적용되니 주의하도록 하자.
반응형
Comments