我們如何在 MySQL 中使用巢狀事務?
我們可以藉助 SAVEPOINT 在 MySQL 中處理巢狀事務
首先,建立一個表。然後開始事務
現在,在上面建立的表中插入記錄。使用 SAVEPOINT 語句使用識別符號為名稱設定一個命名的事務儲存點
以查詢的形式顯示所有這些步驟 −
建立表
mysql> create table NestedTransactionDemo -> ( -> Name varchar(200) -> ); Query OK, 0 rows affected (0.63 sec)
開始事務 −
mysql> START TRANSACTION; Query OK, 0 rows affected (0.00 sec)
現在,在表中插入記錄
mysql> insert into NestedTransactionDemo values('John'); Query OK, 1 row affected (0.04 sec)
顯示上面新增的記錄 −
mysql> select *from NestedTransactionDemo; +------+ | Name | +------+ | John | +------+ 1 row in set (0.00 sec)
讓我們開始使用事務來建立巢狀事務 −
mysql> savepoint transaction2; Query OK, 0 rows affected (0.00 sec) mysql> insert into NestedTransactionDemo values('David'); Query OK, 1 row affected (0.00 sec) mysql> select *from NestedTransactionDemo; +-------+ | Name | +-------+ | John | | David | +-------+ 2 rows in set (0.00 sec) mysql> rollback to transaction2; Query OK, 0 rows affected (0.00 sec) mysql> select *from NestedTransactionDemo; +------+ | Name | +------+ | John | +------+ 1 row in set (0.00 sec) mysql> rollback to transaction2; Query OK, 0 rows affected (0.00 sec)
廣告