Werden Transaktionen erlaubt in MySQL verschachtelt?
-
19-09-2019 - |
Frage
Ist MySQL die Verwendung von verschachtelten Transaktionen zulassen?
Lösung
InnoDB
unterstützt SAVEPOINTS
.
Sie können folgendes tun:
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
---
Andere Tipps
Von MySQL-Dokumentation:
Transaktionen können nicht verschachtelt werden. Dies ist eine Folge des impliziten COMMIT für alle aktuellen Transaktion ausgeführt wird, wenn Sie eine START TRANSACTION-Anweisung oder eines seiner Synonyme ausgeben. https://dev.mysql.com/doc/refman/5.7 /en/implicit-commit.html
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow