我一直在看看使用innodb表的部分提交的交易:
尽管如此(我多次检查每个项目三次),我的数据库似乎包含半提交的事务: 1. 2表A和B,A包含B的外键(DB中没有定义约束) 2. A包含指向B中不存在的行的有效行。 3. B包含id + 1和id - 1的行。 4.两个表中的两行都插入到单个事务中
总而言之,我无法看到我可能做错的事情。我无法想象我在mysql存储后端遇到了一个错误,所以,我正在寻求有关如何进一步调试此问题的帮助,以及我上面做出的假设最有可能出错。
答案 0 :(得分:0)
我花了一段时间,但似乎事务是由错误1213(死锁)和1205(超过锁等待超时)自动回滚的。在一些试图再次执行失败的语句而不是将错误转发到事务层的内部中间件中捕获这些错误并没有帮助,整个事务可以在整个事务层中重试或放弃。结果是代码将继续正常执行,假设正在进行的事务在由mysql服务器回滚时仍在进行中。