问题场景:
调用一个api执行sql,返回执行成功。
如:
执行前结果:
table
id test dated
1 0 2017-06-22
执行的sql: update table set `test` = 1 and `dated` = '2017-06-23' where `id` =1 limit 1
执行后结果:
id test dated
1 0 2017-06-23
如果手动执行sql:
执行后结果:
id test dated
1 1 2017-06-23
问题排查
- 查binlog
sql是正常执行的
2.发现执行sql的同时,执行了另一条sql
update table set `test` = 0 where `id` =1 limit 1
执行的原因是:因为消息系统。
总结
推理过程:A => B => C
我们经常看到从A => C的过程,感觉很纳闷。
其实过程中,B常常是被忽略的,所以需要着重注意一下。