如何在 MySQL 中使用嵌套事务?
mysqlmysqli database
我们可以借助 SAVEPOINT 在 MySQL 中使用嵌套事务。
首先,创建一个表。之后,开始事务。
现在,在上面创建的表中插入记录。使用 SAVEPOINT 语句设置一个命名事务保存点,名称为标识符。
以下是以查询形式显示的所有步骤−
Create table
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)