我正在重构一些代码,将大量相关更新转换为单个事务。
这是使用JDBC,MySQL,InnoDB。
我相信在(相当大的和未记录的)库或应用程序代码中某处仍然发生了一些不需要的COMMIT。
找出这种情况的最简单方法是什么?
必须有某种隐式提交,因为我没有找到任何COMMIT语句。
答案 0 :(得分:1)
检查导致隐式提交的语句this page in the MySQL docs。
此外,由于您使用的是JDBC,因此请确保autocommit为false,如
connection.setAutoCommit(false);
答案 1 :(得分:0)
我不是mysql的专家,但应该有可能将所有执行的语句记录到文件和/或控制台。这可能会有所帮助。如果您可以在您知道的提交之前通过代码集断点进行调试,然后查看已记录的语句。因此,您可能会看到是否存在不需要的提交。