MySQL은 중첩 트랜잭션 사용을 허용합니까?MySQL에서 중첩 트랜잭션이 허용됩니까?
69
A
답변
59
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
---
0
당신이 PHP를 사용하는 경우, 당신은 흥미로운에서 https://github.com/Enelar/phpsql 그것은 다른 커넥터에 MySQL과 pgSQL의, 그리고 확장을 지원할 수 있습니다. MySQL의 문서에서
function TransferMoney()
{ // Nested transaction code could not even know that he nested
$trans3 = db::Begin();
if (!db::Query("--Withdraw money from user", [$uid, $amount], true))
return $trans3->Rollback();
db::Query("--Deposit money to system");
return $trans3->Commit();
}
$trans = db::Begin();
db::Query("--Give item to user inventory");
$trans2 = $trans->Begin();
$trans2->Query("--Try some actions and then decide to rollback");
$trans2->Rollback();
// Commit or rollback depending on money transfer result
return $trans->Finish(TransferMoney());
14
:
트랜잭션은 중첩 될 수 없습니다. 이것은 START TRANSACTION 문이나 동의어 중 하나를 발행 할 때 현재 트랜잭션에 대해 수행 된 암시 적 커밋의 결과입니다. https://dev.mysql.com/doc/refman/5.7/en/implicit-commit.html
관련 문제
- 1. vxml에서 중첩 된 'if'문이 허용됩니까?
- 2. LightSwitch + MySQL 오류 : 중첩 트랜잭션이 지원되지 않습니다.
- 3. MySQL (나를위한 MySQL에서) 트랜잭션이 동시에 실행될 때 어떻게 동작합니까?
- 4. MySQL에서 트랜잭션이 열려 있는지 어떻게 알 수 있습니까?
- 5. & XML에서 허용됩니까?
- 6. 다른 트랜잭션이 실행되는 동안 트랜잭션이 끝납니다.
- 7. 중첩 세트 모델은 MySQL에서 어떻게 트래버스됩니까?
- 8. MYSQL에서 중첩 된 Select 문이 연결됩니다.
- 9. MySQL에서 중첩 된 쿼리에 대한 도움말
- 10. URL 세그먼트의 "&"문자가 허용됩니까?
- 11. XML + SOAP : 개행이 허용됩니까?
- 12. VHDL 문장이 허용됩니까?
- 13. 봄 트랜잭션이 수행되지 않음
- 14. JDO에서의이 트랜잭션이 안전한지 이해하기
- 15. 엔티티 트랜잭션이 작동하지 않습니다.
- 16. NHibernate 트랜잭션이 닫히지 않는다
- 17. 트랜잭션이 교착 상태가되었습니다.
- 18. Linq2SQL : 트랜잭션이 적용된 SubmitChanges?
- 19. TransactionScope 사용시 트랜잭션이 중단되었습니다.
- 20. createCriteria에 활성 트랜잭션이 필요합니다.
- 21. SQLite 트랜잭션이 적용되지 않습니다.
- 22. 트랜잭션이 롤백되면 CompassGps가 롤백됩니까?
- 23. for 루프의 헤더에는 무엇이 허용됩니까?
- 24. 트리의 노드에 다중 상속이 허용됩니까?
- 25. sitemap.xml 파일에 와일드 카드가 허용됩니까?
- 26. XML에서 그런 종류의 구조가 허용됩니까?
- 27. socket.io security - 특정 도메인에서만 허용됩니까?
- 28. 쓸모없는 코드를 사용하는 것이 허용됩니까?
- 29. mod_rewrite의 절대 파일 경로가 허용됩니까?
- 30. 다중 분배 프로비저닝 프로파일이 허용됩니까?
MySQL은 내가 나중에 참조 할 수 있도록이 점을 염두에 둘 것이다, 중첩 된 트랜잭션을 – hamedkh