source

MySQL에서 중첩된 트랜잭션이 허용됩니까?

gigabyte 2022. 9. 25. 17:45
반응형

MySQL에서 중첩된 트랜잭션이 허용됩니까?

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

언급URL : https://stackoverflow.com/questions/1306869/are-nested-transactions-allowed-in-mysql

반응형