2008년 11월 14일
MySQL - 트랜잭션 (transaction)
※ InnoDB, BDB, NDB Cluster 엔진에서 사용할 수 있다.
기본적으로는 자동 커밋이 활성화 되어 있다.
하나의 DML을 수행할 때마다 서버가 자동으로 커밋을 수행한다.
비활성화 하고 싶을 때는
mysql> SET AUTOCOMMIT = 0;
오토커밋이 비활성화 될 경우 사용자가 명시적으로 commit, rollback을 하거나 DDL, DCL 명령 들을 수행할 경우에 트랜잭션이 종료된다.
클라이언트를 정상 종료 했을 경우에는 롤백이 된다.
오토커밋이 활성화중일 때(AUTOCOMMIT=1) 특정 DML 단위에 대해서 이를 비활성화 시킬 수 있다.
mysql> START TRANSACTION;
또는
mysql> BEGIN;
이후의 DML들에 대해서는 자동으로 커밋이 실행되지 않으며,
사용자가 명시적으로 커밋이나 롤백을 하면 해당 작업이 수행되고 다시 오토커밋이 활성화된다.
DDL, DCL을 수행했을 때고 커밋이 수행되고 오토커밋이 활성화된다.
기본적으로는 자동 커밋이 활성화 되어 있다.
하나의 DML을 수행할 때마다 서버가 자동으로 커밋을 수행한다.
비활성화 하고 싶을 때는
mysql> SET AUTOCOMMIT = 0;
오토커밋이 비활성화 될 경우 사용자가 명시적으로 commit, rollback을 하거나 DDL, DCL 명령 들을 수행할 경우에 트랜잭션이 종료된다.
클라이언트를 정상 종료 했을 경우에는 롤백이 된다.
오토커밋이 활성화중일 때(AUTOCOMMIT=1) 특정 DML 단위에 대해서 이를 비활성화 시킬 수 있다.
mysql> START TRANSACTION;
또는
mysql> BEGIN;
이후의 DML들에 대해서는 자동으로 커밋이 실행되지 않으며,
사용자가 명시적으로 커밋이나 롤백을 하면 해당 작업이 수행되고 다시 오토커밋이 활성화된다.
DDL, DCL을 수행했을 때고 커밋이 수행되고 오토커밋이 활성화된다.
# by | 2008/11/14 12:03 | MySQL | 트랙백 | 덧글(0)





☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]