【MySQL】beginでトランザクションを開始する方法


ここではMySQLで、beginでトランザクションを開始する方法を紹介しています。

beginとは

トランザクションを開始するときに使うコマンドです。

MySQLでは、「begin」と「start transaction」は同じコマンドになります。

beginを使うとき

MySQLは、デフォルトの設定で、AUTOCOMMITが1となっており、SQLを発行すると即時コミットされる設定になっています。

そのため、個別にトランザクションを開始して、コミットを制御したいときに、beginやStart transactionを使います。

beginを使ったSQLサンプル

次の例では、トランザクションの開始にBEGINを宣言しています。

その後、INSERT文を発行します。

INSERT文を発行した後、ROLLBACKを実行します。これで先ほど実行したINSERT文がロールバックされ取り消されました。

結果、0件のままとなっています。

mysql> BEGIN;
Query OK, 0 rows affected (0.00 sec)

mysql> INSERT INTO tab1 VALUES('00001','Suzuki','HR',28);
Query OK, 1 row affected (0.00 sec)

mysql> ROLLBACK;
Query OK, 0 rows affected (0.00 sec)

mysql> SELECT * FROM tab1;
Empty set (0.00 sec)