1. ホーム
  2. mysql

[解決済み] MySQL でネストされたトランザクションは可能ですか?

2022-02-09 22:36:12

質問

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
---