`updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
如上面所示,建表语句中有一条,自动更新更新时间的语句。只要这条记录发生变化,更新时间就会更新为当前时间。
一次执行批量更新业务时:
update tableDemo set xxx='' where yyy='';
这时我们发现只要被更新的数据,更新时间都变为当前时间了,如果你的更新时间是有业务作用的话,那么就会导致问题了。
所以数据库建表时,更新字段是这种的,需要特别注意了。
正确写法避免更新时间被修改:
update tableDemo set xxx='',updated_at=updated_at where yyy='';