update操作update_time没有自动更新的的问题

  • 数据库中update_time的字段设置为:

    `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
    
  • 在mysql中, 如果类型为时间的列设置了CURRENT_TIMESTAMP, 那么在insert一条新记录的收, 时间字段自动获取到当前时间, 如果设置了ON UPDATE CURRENT_TIMESTAMP, 则时间字段随着update命令的更新和实时变化。 如果两个属性都设置了, 那么时间字段默认为当前时间, 且随着记录的更新而自动变化

  • 当执行update时,当要更新的数据与数据库中原有的数据一样的话,datetime是不会跟着变的;

    例如:执行如下sql

    update xxx set update_user_id = 'AA160615032543915925' where id = 1
    

    首先我们记录下sql执行前的datetime时间:

    1539692402(1).jpg

​ 执行上边的sql,发现datetime并没有变化,当执行如下sql的时候,

update xxx set update_user_id = 'AA160615032543915926' where id = 1

​ 这时datetime变更了,如下:

1539692810(1).jpg

说明当update操作时,如果更新的数据没有实际变更,update_time是不会跟着变的

你可能感兴趣的:(update操作update_time没有自动更新的的问题)