Mysql中的事务和AUTOCOMMIT

时间:2013-03-16 16:53:01

标签: mysql transactions innodb

据我所知,对于MySQL中的InnoDB表,所有事务都包含在START TRANSACTION中;并以COMMIT结束;除非明确说明不是。

如果我要明确定义事务块,那么做这样的事情是否正确:

SET AUTOCOMMIT = 0;
START TRANSACTION;
[SQL STATEMENTS]
COMMIT;
SET AUTOCOMMIT = 1;

此后的下一个交易会回到InnoDb默认处理交易的方式吗?我的意图是有时只在我的应用程序中明确定义了事务,但所有其他事务都将由引擎处理。

1 个答案:

答案 0 :(得分:4)

在您的情况下,您无需将自动提交设置为0。隐式定义事务会为您做到这一点。来自MySQL documentation: “要为一系列语句隐式禁用自动提交模式,请使用START TRANSACTION语句:”