【MySQL】create_time 和 update_time 自动更新时间


我是一名立志把细节都说清楚的博主,欢迎关注🎉 ~
原创不易,如果有帮助,还请鼓励个【赞】哦~ ❥(^_-)~

背景

根据《阿里巴巴Java开发手册》第五章MySQL数据库:第一节 建表规约,第9条:
【强制】表必备三字段:id,create_time,update_time。
说明:其中 id 必为主键,类型为 bigint unsigned、单表时自增、步长为 1。create_time,update_time 的类型均为datetime 类型,前者现在时表示主动式创建,后者过去分词表示被动式更新。

实现方式

  • 按照《阿里巴巴Java开发手册》规范要求,create_time 和 update_time 数据类型先设定为 datetime 。
  • 默认值设置为 CURRENT_TIMESTAMP。
  • 更新时间( update_time )还要再设置一个ON UPDATE CURRENT_TIMESTAMP。

MySQL 实现

  • 直接查看第四行(create_time)和第五行(update_time)的SQL语句即可。
  • update_time 在create_time的基础上,还需要设置 ON UPDATE CURRENT_TIMESTAMP。
create table datetime (
	id bigint unsigned primary key auto_increment comment "id",
    name varchar not null comment "名称",
    create_time datetime not null default CURRENT_TIMESTAMP comment "创建时间",
    update_time datetime not null default CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP comment "更新时间",
    ) engine = Innodb default charset = utf8mb4 comment = "演示表";

Navicat 实现

  • create_time :不勾选“根据当前时间戳更新”。
  • update_time:勾选“根据当前时间戳更新”。

create_tiem
update_time

DataGrip 实现

  • create_time :ON UPDATE 不设置 CURRENT_TIMESTAMP。
  • update_time:ON UPDATE 设置 CURRENT_TIMESTAMP。

create_time
update_time

我是一名立志把细节都说清楚的博主,欢迎关注🎉 ~
原创不易,如果有帮助,还请鼓励个【赞】哦~ ❥(^_-)~

  • 9
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 10
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我梦Leo

谢谢无敌帅气可爱迷人的你哦 ~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值