记录一次找bug经历(一)

起因

A:发现一个bug
B:什么bug
A:我们项目中(测试环境)有个接口时间会自动跟着更新时间变动,但是在本地测试是好的
B:详细描述下呢
A:有个发布动态的功能,其中有发布时、更新时间、新闻时间三个字段,当在后台通过审核后,新闻时间会跟着更新时间一起变
B:有没有检查代码有什么不同呢
A:检查过了,本地跟线上的代码版本一致
B:有没有考虑过哪里出了问题
A:看一下线上的数据表吧,感觉数据表有问题
B:当时更新数据表是跟本地同步的啊,不能出问题啊,等我有时间看下吧

解决过程

由于当时忙,想了下,没想到啥原因,简单看了下代码,确实没问题,暂时放一放了,晚上找到运维看了下线上数据库

1
时间字段 timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

what??? 不知道怎么这个字段加了在更新的时候修改为当前时间,今后要注意这种小细节,好在这次找bug的时间没有很长

总结

当把数据表字段设置成 dafault CURRENT_TIMESTAMP 会在数据插入的时候,自动设置成当前时间

数据表中时间字段更新的方法
  1. 在代码中更新字段

  2. 设置字段的Extra列on update CURRENT_TIMESTAMP

  3. 设置mysql定时任务

Comments