1
mayorbryant 2019-02-15 18:08:57 +08:00 1
感觉楼主描述的有点绕啊,根据我的理解,你这个现象很正常啊,说明回写为 2 的操作并没有执行成功啊,
在你写的事务中应该有这样的伪代码 start transaction done something if done: 回写 2 transaction commit else: 回写 0 transaction rollback |
2
xpresslink 2019-02-15 18:09:53 +08:00 1
处理成功后把数据库状态升级为 2 失败则升级数据库为 0 (都同时升级其他字段)
不太理解你说的,用数据库事务去处理如果失败则回滚到前一个状态,应该是 1 啊,你失败则升级为 0 是什么鬼。 |
3
ksedz 2019-02-15 18:14:48 +08:00 1
可能有多线程,或者重复数据导致了覆盖
解决办法是第一个 sql 加个条件,只处理状态为 0 的数据 |