我们如何在 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)

更新时间:2019 年 7 月 30 日

2 千次以上浏览

开启你的 职业生涯

完成课程以获得认证

开始
广告