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

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

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

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