MySQLのrollback--トランザクションロールバック

1517 ワード

MySQL version:5.7まず、トランザクションロールバックはDMLにのみ使用され、DDLには適用されません.DDLのロールバックについては、後で話す時間があります.
rollbackとcommitについて、MySQLのドキュメントはすでに詳しく話していますが、簡単な例を選んでからくどくど言います.
mysql> CREATE TABLE customer (a INT, b CHAR (20), INDEX (a));
Query OK, 0 rows affected (0.00 sec)
mysql> -- Do a transaction with autocommit turned on.
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;

トランザクションを開くには、上記の例のSTART TRANSACTION;または簡単なbegin;を使用します.コミットトランザクション、すなわちDMLの変更を確認し、commit;を使用してトランザクションをロールバックします.すなわち、ロールバックする前の操作を使用します.rollback;を使用します.また、コミットしなくてもロールバックしない場合は、実行されるDMLは現在のセッションで有効であり、他のセッションでは有効ではありません(接続ウィンドウを再開してみてください)ので、beginは最初はcommitで終わるか、rollbackで終わるかのいずれかです.
大量のupdateやdeleteを実行するときは、必ず事務を使うように注意しましょう.
参考:MySQL公式ドキュメント:https://dev.mysql.com/doc/refman/8.0/en/innodb-autocommit-commit-rollback.html