Insert, Update, Delete 등과 같이 잘못 사용하면 큰 문제가 일어나는 Query문을 사용할 경우에
자신이 수행한 결과를 다시 Rollback 할 수 있고
제대로 동작했다면 Commit하는 기능을 나타낸다.
Example을 보면 쉽게 이해 할 수 있다.
【예제】
mysql> create table test2 (a int) type=innodb;
Query OK, 0 rows affected (0.01 sec)
mysql> set autocommit=1; ☜ autocommit의 디폴트값이 '1'이므로 실행하지
않아도 됨
Query OK, 0 rows affected (0.00 sec)
mysql> insert into test2 values(10);
Query OK, 1 row affected (0.00 sec)
mysql> begin;
Query OK, 0 rows affected (0.00 sec)
mysql> update test2 set a=20 where a=10;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> select * from test2;
+------+
| a |
+------+
| 20 |
+------+
1 row in set (0.00 sec)
mysql> rollback;
Query OK, 0 rows affected (0.00 sec)
mysql> select * from test2;
+------+
| a |
+------+
| 10 |
+------+
1 row in set (0.00 sec)
mysql> begin;
Query OK, 0 rows affected (0.00 sec)
mysql> update test2 set a=20 where a=10;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> commit;
Query OK, 0 rows affected (0.00 sec)
mysql> select * from test2;
+------+
| a |
+------+
| 20 |
+------+
1 row in set (0.00 sec)
mysql>
현재의 autocommit 상태를 확인하는 방법은 다음 예제와 같다.
【예제】
mysql> select @@session.autocommit;
+----------------------+
| @@session.autocommit |
+----------------------+
| 1 |
+----------------------+
1 row in set (0.03 sec)
mysql> set autocommit=0;
Query OK, 0 rows affected (0.00 sec)
mysql> select @@session.autocommit;
+----------------------+
| @@session.autocommit |
+----------------------+
| 0 |
+----------------------+
1 row in set (0.01 sec)
mysql>
출처 : http://radiocom.kunsan.ac.kr/lecture/mysql/begin_commit_rollback.html