Sono annidate le operazioni consentite in MySQL?
-
19-09-2019 - |
Domanda
Il MySQL consente l'utilizzo di transazioni nidificate?
Soluzione
InnoDB
supporta SAVEPOINTS
.
È possibile effettuare le seguenti operazioni:
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
---
Altri suggerimenti
Da documentazione di MySQL:
Le transazioni non possono essere nidificate. Questa è una conseguenza della implicita commit eseguito per qualsiasi transazione corrente quando si emette una dichiarazione START TRANSACTION o uno dei suoi sinonimi. https://dev.mysql.com/doc/refman/5.7 /en/implicit-commit.html
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow