我正在使用一个非常复杂的代码库,并希望对其如何与 MySQL 一起工作进行一些反思。 (请注意,我使用的是 InnoDB)。
具体来说,在我正在编写的方法中,我希望确定其打开的数据库连接中是否有任何未完成的(未提交的)写入。
是否有任何 MySQL 命令或其他方法来检测是否存在未提交的写入? (或者换句话说,确定 COMMIT 是否不会进行任何修改)。
这是一个非常有趣的问题。我认为没有明确的方法来确定发出提交是否会对您正在运行的会话产生影响。
您可以查看交易show innodb status
or 显示引擎 innodb 状态但我认为您不能对这些事务发出提交。
INNODB_TRX
information_schema 中的表将显示当前正在执行的事务:https://dev.mysql.com/doc/refman/5.5/en/innodb-trx-table.html同样,你也无能为力来强制提交它们。您可以通过终止关联的进程来回滚它们。
如果您正在使用以下方式运行交易开始交易在存储过程中,您可以手动处理提交和回滚。你甚至可以设置自动提交为 0 来控制何时回滚和何时提交。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)