您现在的位置是:网站首页>文章内容文章内容
MySql 技巧:自动维护数据插入与更新时间
李鹏2022-03-31【MySql】1157人已围观
如果你的表需要维护插入时间、更新时间【源自 Laravel 的个人习惯 】,通常情况需要创建两个时间字段,类似 created_at 、updated_at 等,通常我们创建数据表的 sql 语句如下
CREATE TABLE users (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键id',
`name` varchar(50) NOT NULL DEFAULT '' COMMENT '用户名',
`created_at` timestamp DEFAULT NULL COMMENT '创建时间',
`updated_at` timestamp DEFAULT NULL COMMENT '更新时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='用户表';
这种情况下,时间字段需要在程序中特意去维护,比较麻烦,可以将 sql 改为如下:
CREATE TABLE users (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键id',
`name` varchar(50) NOT NULL DEFAULT '' COMMENT '用户名',
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='用户表';
注: CURRENT_TIMESTAMP 当前时间戳、CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP 插入【更新】时的时间戳
0