MySQL에서 중첩 거래가 허용됩니까?
-
19-09-2019 - |
문제
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 문서에서 :
거래는 중첩 될 수 없습니다. 이는 시작 트랜잭션 명세서 또는 동의어 중 하나를 발행 할 때 현재 거래에 대해 수행 된 암시 적 커밋의 결과입니다. https://dev.mysql.com/doc/refman/55.7/en/implicit-commit.html
제휴하지 않습니다 StackOverflow