【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)