如何确定MySQL事务中是否有未提交的写入?

时间:2015-12-16 02:40:55

标签: mysql innodb

我正在处理一个非常复杂的代码库,并希望对它如何与MySQL协同工作进行一些内省。 (请注意,我使用的是InnoDB)。

具体来说,在我编写的方法中,我希望确定其开放数据库连接中是否有任何未完成(未提交)写入。

是否有任何MySQL命令 - 或其他方法 - 来检测是否存在未提交的写入? (或用另一种方式,确定COMMIT是否不做任何修改)。

1 个答案:

答案 0 :(得分:3)

这是一个非常有趣的问题。我认为没有明确的方法来确定发布提交是否会对您正在运行的会话产生影响。

您可以查看//Colors for certain widgets <color name="textView_Color">#505050</color> <color name="Button_Color">#878787</color> <color name="Background_Color">#ffffff</color> //Where I assign the colors <style name="mainTheme" parent="android:Theme.NoTitleBar"> <item name="android:textColor">@color/textView_Color</item> <item name="android: ">@color/Button_Color</item> <item name="android:windowBackground">@color/Background_Color</item> </style> show engine innodb status的交易,但我认为您不能对这些交易发出提交。

information_schema中的

show innodb status表将显示当前正在执行的转换:https://dev.mysql.com/doc/refman/5.5/en/innodb-trx-table.html并且再次强制提交它们并不是很多。您可以通过终止相关进程来回滚它们。

如果在存储过程中使用START TRANSACTION运行事务,则可以手动处理提交和回滚。您甚至可以set autocommit为0来控制何时回滚以及何时提交。