:: DEVELOPER ZONE
By default, each client that connects to the MySQL server begins
with autocommit mode enabled, which automatically commits every SQL
statement you run. To use multiple-statement transactions, you can
switch autocommit off with the SQL statement SET AUTOCOMMIT
= 0 and use COMMIT and
ROLLBACK to commit or roll back your transaction.
If you want to leave autocommit on, you can enclose your
transactions between START TRANSACTION and
COMMIT or ROLLBACK. Before
MySQL 4.0.11, you have to use the keyword BEGIN
instead of START TRANSACTION. The following
example shows two transactions. The first is committed and the
second is rolled back.
shell> mysql test
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 5 to server version: 3.23.50-log
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> CREATE TABLE CUSTOMER (A INT, B CHAR (20), INDEX (A))
-> TYPE=InnoDB;
Query OK, 0 rows affected (0.00 sec)
mysql> BEGIN;
Query OK, 0 rows affected (0.00 sec)
mysql> INSERT INTO CUSTOMER VALUES (10, 'Heikki');
Query OK, 1 row affected (0.00 sec)
mysql> COMMIT;
Query OK, 0 rows affected (0.00 sec)
mysql> SET AUTOCOMMIT=0;
Query OK, 0 rows affected (0.00 sec)
mysql> INSERT INTO CUSTOMER VALUES (15, 'John');
Query OK, 1 row affected (0.00 sec)
mysql> ROLLBACK;
Query OK, 0 rows affected (0.00 sec)
mysql> SELECT * FROM CUSTOMER;
+------+--------+
| A | B |
+------+--------+
| 10 | Heikki |
+------+--------+
1 row in set (0.00 sec)
mysql>
In APIs like PHP, Perl DBI/DBD, JDBC, ODBC, or the standard C call
interface of MySQL, you can send transaction control statements such
as COMMIT to the MySQL server as strings just
like any other SQL statements such as SELECT or
INSERT. Some APIs also offer separate special
transaction commit and rollback functions or methods.
© 1995-2005 MySQL AB. All rights reserved.

User Comments
Warning: query failed: Unknown column 'user.firstname' in 'field list' in /data0/sites/live/web-main/lib/mysql-cxn.php on line 69
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /data0/sites/live/web-main/lib/docbook.php on line 245
Add your own comment.