我们如何使用 MySQL 中允许的嵌套事务?


我们借助 START 命令和 SAVEPOINT 允许多项事务。让我们借助 CREATE 命令创建一个表。

创建一个表

mysql> CREATE table transactionDemo
-> (
-> id int auto_increment,
-> primary key(id)
-> );
Query OK, 0 rows affected (0.76 sec)

之后,我将借助 START 命令开始一项事务 −

mysql> START TRANSACTION;
Query OK, 0 rows affected (0.00 sec)

之后,我借助 INSERT 命令插入以下记录 −

mysql> INSERT into transactionDemo values();
Query OK, 1 row affected (0.04 sec)

我们可以借助 SELECT 语句显示一条记录,如下所示 −

mysql> SELECT *from transactionDemo;

以下是输出

+----+
| id |
+----+
| 1  |
+----+
1 row in set (0.00 sec)

之后,我借助 SAVEPOINT 保存此查询。查询如下 −

mysql> SAVEPOINT t2;

插入记录

mysql> INSERT into transactionDemo values();
Query OK, 1 row affected (0.00 sec)

借助 SELECT 命令显示所有记录 −

mysql> SELECT *from transactionDemo;

以下是输出

+----+
| id |
+----+
| 1  |
| 2  |
+----+
2 rows in set (0.00 sec)

现在,我们可以回滚第一项事务 −

mysql> ROLLBACK TO t2;
Query OK, 0 rows affected (0.03 sec)

现在,我们可以显示先前保存的事务 −

mysql> SELECT * from transactionDemo;

以下是输出

+----+
| id |
+----+
| 1  |
+----+
1 row in set (0.00 sec)

更新于:2020-6-25

335 次浏览

开启 职业生涯

通过完成课程获得认证

开始
广告