创建时间自动生成:
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中比较好。
可以设置为用户通过接口调用的时候,会更新时间,便于追踪。
直接改库,或者调用私有接口的时候,不更新时间,有助于做数据。