背景:在操作数据库表时,需要自动记录插入,更新操作时间。
一:在建表语句加上:
--设置插入自动加入时间
DEFAULT CURRENT_TIMESTAMP
--设置更新自动更新时间
DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
如:
CREATE TABLE `aoa_scheduled_config` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
`task_id` varchar(20) COLLATE utf8_bin NOT NULL COMMENT '任务id',
`task_time` varchar(20) COLLATE utf8_bin NOT NULL COMMENT '任务执行时间',
`task_switch` varchar(10) COLLATE utf8_bin DEFAULT NULL COMMENT '任务执行开关',
`task_name` varchar(30) COLLATE utf8_bin DEFAULT NULL COMMENT '任务名称',
`task_sceneId` varchar(100) COLLATE utf8_bin DEFAULT NULL COMMENT '任务场景id',
`task_code` varchar(100) COLLATE utf8_bin DEFAULT NULL,
`remake` varchar(100) COLLATE utf8_bin DEFAULT NULL COMMENT '描述',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COLLATE=utf8_bin
二:已经建表情况下,最方便可在缺省,额外两列加上:CURRENT_TIMESTAMP,on update CURRENT_TIMESTAMP,再保存即可!
如:
ALTER TABLE 表名 MODIFY COLUMN 列名 datetime DEFAULT CURRENT_TIMESTAMP NOT NULL;
ALTER TABLE 表名 MODIFY COLUMN 列名 datetime DEFAULT CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP NOT NULL;