デフォルトによって、MySQL
        サーバーに接続する各クライアントが、実行するとすべての
        SQL
        ステートメントを自動的にコミットする自動コミットが有効な状態で開始します。複数のステートメントを含むトランザクションを使用するには、SQL
        ステートメント SET autocommit =
        0
        で自動コミットをオフに切り替え、各トランザクションの終わりに
        COMMIT、ROLLBACK
        のいずれかを入力します。自動コミットをオンの状態のままにしておきたければ、トランザクションを
        START
        TRANSACTION
        で開始し、COMMIT
        か
        ROLLBACK
        のどちらかで終了させることができます。次の例は
        2
        つのトランザクションを表しています。最初のものはコミットされ、2
        つめのものはロールバックされています。
      
shell>mysql testmysql>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>
        PHP、Perl DBI、JDBC、ODBC、または MySQL
        のスタンダード C
        呼び出しインタフェースのような API
        内では、COMMIT
        のようなトランザクションコントロールステートメントを
        SELECT や
        INSERT
        のような別の SQL
        ステートメントのような文字列として、MySQL
        サーバーに送ることができます。いくつかの API
        は、別々の特別トランザクションコミットやロールバック機能または方法も提供します。
      

