(mysql.info) innodb-transactions-with-different-apis
Info Catalog
(mysql.info) using-innodb-tables
(mysql.info) using-innodb-tables
(mysql.info) converting-tables-to-innodb
14.2.6.1 How to Use Transactions in `InnoDB' with Different APIs
................................................................
By default, each client that connects to the MySQL server begins with
autocommit mode enabled, which automatically commits every SQL
statement as you execute it. 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 within `START TRANSACTION' and either `COMMIT' or
`ROLLBACK'. The following example shows two transactions. The first is
committed; the second is rolled back.
shell> mysql test
mysql> CREATE TABLE CUSTOMER (A INT, B CHAR (20), INDEX (A))
-> ENGINE=InnoDB;
Query OK, 0 rows affected (0.00 sec)
mysql> START TRANSACTION;
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 such as PHP, Perl DBI, 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.
Info Catalog
(mysql.info) using-innodb-tables
(mysql.info) using-innodb-tables
(mysql.info) converting-tables-to-innodb
automatically generated byinfo2html