您现在的位置是:网站首页>文章内容文章内容

MySql 技巧:自动维护数据插入与更新时间

李鹏2022-03-31MySql121人已围观

 如果你的表需要维护插入时间、更新时间【源自 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

文章评论

我的名片

姓名:李鹏

职业:PHP工程师

现居:广东-深圳

网址:https://www.lipeng93.cn