Programing

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

lottogame 2020. 9. 25. 08:14
반응형

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

반응형