0
点赞
收藏
分享

微信扫一扫

mysql 自动更新时间,自动创建时间


创建时间自动生成:

CREATE TABLE `t1` (
`id` int(11) NOT NULL,
`create_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
);

mysql中

修改时间自动更新:

CREATE TABLE `t2` (
`id` int(11) NOT NULL,
`update_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
);

那么能不能既有创建时间,又有自动更新时间呢:

CREATE TABLE `t3` (
`id` int(11) NOT NULL,
`create_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
`update_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
);

报错:

Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause

不能同时有2个 CURRENT_TIMESTAMP 列 in default 或 update clause。

mysql5.5官网文档:
​​​https://dev.mysql.com/doc/refman/5.5/en/timestamp-initialization.html​​

其他

关于修改时间自动更新的思考

修改时间自动更新到底好不好,在代码中如何控制。

数据库中设置自动修改固然好,但是有的时候,需要手动调整下数据,但是不希望修改时间。

mapper中加自动更新的逻辑好不好?
不好,因为无法应付想修改数据,但是不想修改时间的情况。

更新修改时间的逻辑在哪里比较好?
个人感觉放在dao或service中比较好。
可以设置为用户通过接口调用的时候,会更新时间,便于追踪。
直接改库,或者调用私有接口的时候,不更新时间,有助于做数据。


举报

相关推荐

0 条评论