在重构一个服务时,需要根据mysql update更新的条数来判断执行的是否成功。结果发现update的条数竟然返回是0。
经过排查发现:
mysql在更新数据时,第一次返回是1,第二次返回就是0。
举例:
第一次将name改为zhangsan,影响行数为1:
第二次拿着相同的数据更新表字段值,影响行数为0:
此处需要拿更新的条数,那么就需要更新表中的update_time字段,这样就不管前后更新的数据是否一致了。
需要特别注意:
update_time最好是毫秒级的,因为程序处理快时秒级的是不管用的。
具体原因后面需要查看mysql官方文档,再更新文章说明。