MySql创建时间及更新时间的智能更新

一条记录一般会有创建时间跟更新时间
创建时间为第一次写数据时填入,更新时间则记录数据的最后修改时间

我们在数据库设置了唯一索引,想基于唯一索引来批量插入更新数据,一般可以用replace 或者 ON DUPLICATE KEY

replace的原理是先根据唯一索引检查有无数据,没有的插入,有的先删除旧的记录,然后再插入新数据。原记录的数据无法保留

ON DUPLICATE KEY在已有数据的情况下,可以选择性的更新字段 ,可保留某些字段值 如create_time。

CURRENT_TIMESTAMP ,设置字段获取当前的系统时间,但是一个表只允许设置一个。
如下这种设置是不会同时生效的
CREATE TABLE aaa(
create_time datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT ‘创建时间’,
update_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT ‘更新时间’);

有两种解决方式:
方式一:ON DUPLICATE KEY UPDATE 时写入更新时间

方式二:网上找到一种解决方式
CREATE TABLE bbb (
create_time TIMESTAMP NOT NULL DEFAULT 0,
update_time TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ;

你可能感兴趣的:(MyBatis)