博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MYSQL中timestamp类型自动更新的用法心得
阅读量:6872 次
发布时间:2019-06-26

本文共 1092 字,大约阅读时间需要 3 分钟。

hot3.png

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

   1.实验环境及版本:MYSQL 5.6 LINUX系统.

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

    CREATETIME           timestamp, 

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

   CREATETIME TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,

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

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

    CREATETIME           timestamp, 

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

    timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',

  那么问题来了,这个字段的值,一是不再自动更新,二是,在插入记录时,字段值就是'0000-00-00 00:00:00'。类似于死字段了一下,前端程序也不太好更新。不知道MYSQL为何这样处理。

 

   对于一张表,通常会有两个性质的字段,一个是记录插入时间,即更新时,此值不再变化。二个是记录最后更新时间,也就是随着更新次数变化而更新。那在一个表里能否两个这样类型的字段来实现数据级的自动管理呢?答案是肯定的。做法如下:

   1.用最后更新时间字段做为此表的第一个timestamp段,不用设置任何默认值。

   2.把插入时间的字段做为第二个或者以后的字段来建,同时指定默认值为:CURRENT_TIMESTAMP。

     生成的建本脚本为:TIMESTAMP DEFAULT CURRENT_TIMESTAMP

      在POWERDESIGNER中的设置方法为:TALBE->Columns,双击要设置的字段弹出窗口(Column Properties)->Standard 

Checkes选项卡上,设置Default。记得一定要下拉选择 “CURRENT_TIMESTAMP”,如果你的PowerDesginer中没有下拉选项,那么你输上也是不管用的。这个问题是因你的 PowerDesginer版本问题。

 

 

转载于:https://my.oschina.net/6955825/blog/760853

你可能感兴趣的文章
( component 标签元素,及其 :is 属性 )的使用样例(组件切换的一个简单样例,不过,最好使用动画来实现组件的切换)...
查看>>
这7个人生捷径,一定不要走!
查看>>
Koa2+Mysql搭建简易博客
查看>>
Atom 初识
查看>>
Servlet、Filter和Listener
查看>>
高中数学运算能力训练题【基础中阶高阶辅导】
查看>>
插件就是生产力——那些不能错过的XCode插件们
查看>>
Python打造一个在线G代码生成器
查看>>
ionic开发-怪癖001(http请求 android下无法正常运行)
查看>>
Java实现的基于socket的一次通信
查看>>
Form保存顺序
查看>>
[python]错误检测及异常处理try-except
查看>>
SharePoint 2010 "客户端不支持使用windows资源管理器打开此列表" 解决方法
查看>>
ZOJ-2913 Bus Pass---BFS进阶版
查看>>
PHP 依赖管理神器 Composer 基本使用
查看>>
sass进阶篇
查看>>
为项目配置logback日志
查看>>
另外一种C#多选下拉框
查看>>
【iOS-Cocos2d游戏开发之十九】游戏数据存储的四种常用方式NSKeyedArchiver/NSUserDefaults/Write写入/SQLite3...
查看>>
“李开复”危机
查看>>