据我所知,对于MySQL中的InnoDB表,所有事务都用START TRANSACTION包装;并以COMMIT结束;除非显式声明不这样做。
如果我显式地定义事务块,这样做是否正确:
SET AUTOCOMMIT = 0;
START TRANSACTION;
[SQL STATEMENTS]
COMMIT;
SET AUTOCOMMIT = 1;这之后的下一个事务会回到InnoDb默认处理事务的方式吗?我的意图是只在应用程序中显式定义事务,但所有其他事务都将由引擎处理。
发布于 2013-03-17 23:16:30
在这种情况下,您不需要将自动提交设置为0。隐式地定义一个事务就可以做到这一点。来自MySQL documentation:“要隐式禁用单个语句系列的自动提交模式,请使用START TRANSACTION语句:”
https://stackoverflow.com/questions/15451964
复制相似问题