MySQLはネストされたトランザクションの使用を許可しますか?
45276 次
2 に答える
87
いいえ、でも
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
---
于 2009-08-20T15:16:12.387 に答える
57
MySQLドキュメントから:
トランザクションをネストすることはできません。これは、STARTTRANSACTIONステートメントまたはその同義語の1つを発行するときに現在のトランザクションに対して実行される暗黙的なコミットの結果です。 https://dev.mysql.com/doc/refman/5.7/en/implicit-commit.html
于 2016-03-08T10:18:09.120 に答える