MySQL 8.0.29でROLLBACKで変更を取り消す方法
環境
Ubuntu 22.04 LTS
MySQL 8.0.29-0ubuntu0.22.04.2
1.トランザクション実行前の状態を確認します
mysql> SELECT * FROM users; +------+----------+ | id | name | +------+----------+ | 11 | tokyo | | 22 | oosaka | | 33 | yokohama | +------+----------+ 3 rows in set (0.00 sec)
2.トランザクションを実行します
mysql> BEGIN; Query OK, 0 rows affected (0.00 sec)
レコードを更新します
mysql> UPDATE `users` SET `name` = "tokyo88" WHERE `id` = 11; Query OK, 1 row affected (1.61 sec) Rows matched: 1 Changed: 1 Warnings: 0
3.レコード更新の確認
mysql> SELECT * FROM users; +------+----------+ | id | name | +------+----------+ | 11 | tokyo88 | | 22 | oosaka | | 33 | yokohama | +------+----------+ 3 rows in set (0.00 sec)
4.ROLLBACKを実行します
mysql> ROLLBACK; Query OK, 0 rows affected (0.46 sec)
5.ROLLBACK で終了したので、レコードは更新されていません。
mysql> SELECT * FROM users; +------+----------+ | id | name | +------+----------+ | 11 | tokyo | | 22 | oosaka | | 33 | yokohama | +------+----------+ 3 rows in set (0.00 sec)