是嵌套允许在MySQL的交易?
-
19-09-2019 - |
题
的MySQL是否允许使用嵌套事务的?
解决方案
InnoDB
支持SAVEPOINTS
。
您可以执行以下操作:
CREATE TABLE t_test (id INT NOT NULL PRIMARY KEY) ENGINE=InnoDB;
START TRANSACTION;
INSERT
INTO t_test
VALUES (1);
SELECT *
FROM t_test;
id
---
1
SAVEPOINT tran2;
INSERT
INTO t_test
VALUES (2);
SELECT *
FROM t_test;
id
---
1
2
ROLLBACK TO tran2;
SELECT *
FROM t_test;
id
---
1
ROLLBACK;
SELECT *
FROM t_test;
id
---
其他提示
从MySQL文档:
事务不能被嵌套。这是隐含的后果对于任何当前事务,当你发出START TRANSACTION语句或其同义词之一提交执行。 https://dev.mysql.com/doc/refman/5.7 /en/implicit-commit.html
不隶属于 StackOverflow