如何找出COMMIT可能发生的位置?

时间:2009-11-11 02:54:34

标签: mysql debugging jdbc transactions

我正在重构一些代码,将大量相关更新转换为单个事务。

这是使用JDBC,MySQL,InnoDB。

我相信在(相当大的和未记录的)库或应用程序代码中某处仍然发生了一些不需要的COMMIT。

找出这种情况的最简单方法是什么?

必须有某种隐式提交,因为我没有找到任何COMMIT语句。

2 个答案:

答案 0 :(得分:1)

检查导致隐式提交的语句this page in the MySQL docs

此外,由于您使用的是JDBC,因此请确保autocommit为false,如

connection.setAutoCommit(false);

答案 1 :(得分:0)

我不是mysql的专家,但应该有可能将所有执行的语句记录到文件和/或控制台。这可能会有所帮助。如果您可以在您知道的提交之前通过代码集断点进行调试,然后查看已记录的语句。因此,您可能会看到是否存在不需要的提交。