MYSQL中timestamp类型自动更新的用法心得

在MySQL 5.6中,首个未设置默认值的timestamp字段会自动变为自动更新。第二个timestamp字段不会自动更新,且默认值为'0000-00-00 00:00:00'。要实现插入时间和最后更新时间字段自动管理,可以将更新时间字段设为首个timestamp,创建时间设为第二个并指定默认值为CURRENT_TIMESTAMP。在POWERDESIGNER中设置需要在Column Properties的Standard Checks选项卡中选择DEFAULT 'CURRENT_TIMESTAMP'。
摘要由CSDN通过智能技术生成

库表中用到了时间的字段,首先百度中查了关于timestamp的一些说明,发现说法不太统一。验证过程得出如下:

  •    实验环境及版本:MYSQL 5.6 LINUX系统。
  • 验证过程 

  1. 默认情况下,在一个表中,第一个出现的timestamp字段,在不设置任何默认值的情况下,建表脚本为:     
CREATETIME           timestamp, 

  但你建完后再查看表的DDL时,发现已成了这样: 

 CREATETIME TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,

说明:这个并不奇怪,是因为数据库会对一张表中第一个出现的字段,自动增加默认值。要注意的是,转后的结果是,这个自段就成了自动更新的字段,即(插入记录,更新记录)的时候,数据库会自动记录时间到这个字段。

      2. 当表中出现第二个timestamp字段时,且也不设置任何默认值的情况下,建表脚本同样为:     

CREATETIME           timestamp, 

  但你建完后再查看表的DDL时,发现已成了这样:

 timestamp NOT NULL DEFAULT '0000-00-00
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值