1.timestamp 默认值

CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP   在创建新记录和修改现有记录的时候都对这个数据列刷新
CURRENT_TIMESTAMP 在创建新记录的时候把这个字段设置为当前时间,但以后修改时,不再刷新它

2.timestamp 可以指定微秒位数

CURRENT_TIMESTAMP(X)  X最大为6

3.TIMESTAMP值可以从1970的某时的开始一直到2037年,精度为微秒

如:2015-09-08 09:11:18.131858

在MySQL5.5里(或更老的版本MySQL5.1)timestamp类型一个表里只允许一列字段拥有自动插入时间和自动更新时间、或只允许一列字段有自动插入时间,另一列字段不能有自动更新时间。

但从MySQL5.6里,打翻了这一传统理念,以上条件均可以出现,并且datetime类型也拥有了timestamp类型的功能。

以下是演示:

这是MySQL5.5的(timestamp类型一个表里只允许一列字段拥有自动插入时间和自动更新时间):

========================================================================

这是MySQL5.6的(timestamp类型一个表里可以有多列字段拥有自动插入时间和自动更新时间):

========================================================================

这是MySQL5.5的(只允许一列字段有自动插入时间,另一列字段不能有自动更新时间)

========================================================================

这是MySQL5.6的(一列字段有自动插入时间,另一列字段也能有自动更新时间)

========================================================================

MySQL5.6(datetime类型也拥有了timestamp类型的功能)

TIMESTAMP在MySQL5.6中的行为

  • 支持多个CURRENT_TIMESTAMP 默认值
  • 可以兼容5.5的行为,支持隐性默认值 
    • explicit_defaults_for_timestamp=0
    • 我测试安装的MySQL5.6默认使用这个参数,启动时,服务器会给出一个警告。 
      [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use –explicit_defaults_for_timestamp server option (see documentation for more details).
  • 可以去掉隐性默认值 
    • explicit_defaults_for_timestamp=1

总结

    • MySQL5.5中TIMESTAMP行为是比较诡异的,会造成一些隐含的问题,比如程序中传入了NULL值
    • MySQL5.6中可以将TIMESTAMP的行为变得正常,但会存在兼容问题
    • explicit_defaults_for_timestamp参数未来会消失
    • 我们不要过度依赖数据库的特性,这些特性会给应用程序造成掣肘

mysql5.6 timestamp的更多相关文章

  1. 解决:mysql5.7 timestamp默认值0000-00-00 00:00:00 报错

    解决:mysql5.7 timestamp默认值0000-00-00 00:00:00 报错 学习了:https://www.cnblogs.com/cnhkzyy/p/9119339.html se ...

  2. 解决:mysql5.7 timestamp默认值‘0000-00-00 00:00:00’报错

    mysql5.7 运行sql脚本时报错 - Invalid default value for 'UPDATE_TIME' [Err] CREATE TABLE `V_TBL_AMOUNT_REASO ...

  3. mysql5.7 timestamp错误:there can be only oneTIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE

    #1293 - Incorrect table definition; there can be only oneTIMESTAMP column with CURRENT_TIMESTAMP in ...

  4. mysql5.x数据库文件导入mysql5.7数据库出错解决方法

    由于mysql5.7 timestamp 类型不允许timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',创建表的是后会报异常 修改mysql5.7的配置文 ...

  5. MySQL5日期类型DATETIME和TIMESTAMP相关问题详解

    MySQL5日期类型DATETIME和TIMESTAMP相关问题详解 MySQL5的日期类型有三种:DATETIME.DATE和TIMESTAMP,除了DATE用来表示一个不带时分秒的是日期,另外两个 ...

  6. mysql5.7 版本中 timestamp 不能为零日期 以及sql_mode合理设置

    ---恢复内容开始--- 摘要: mysql5.7版本相比较之前的版本有很多的特性的增加以及默认配置的改变,在使用中难免会遇到与之前的使用习惯或者项目需求不符的情况.就需要调整相应的变量的值,比如sq ...

  7. mysql5.6以上版本: timestamp current_timestamp报1064/1067错误

    mysql5.6以上版本: timestamp current_timestamp报1064/1067错误 在创建时间字段的时候 DEFAULT CURRENT_TIMESTAMP表示当插入数据的时候 ...

  8. mysql5.7下的timestampn Error : Invalid default value for 'timestamp'

    表格创建是爆了个错 Error : Invalid default value for 'timestamp' 参考:http://www.jb51.net/article/71107.htm 这版本 ...

  9. mysql5.6 TIME,DATETIME,TIMESTAMP

    [背景] 5.6.4以后时间类型(TIME,DATETIME,TIMESTAMP)支持微秒 DATETIME范围 :'1000-01-01 00:00:00.000000' to '9999-12-3 ...

随机推荐

  1. 从TP、FP、TN、FN到ROC曲线、miss rate、行人检测评估

    从TP.FP.TN.FN到ROC曲线.miss rate.行人检测评估 想要在行人检测的evaluation阶段要计算miss rate,就要从True Positive Rate讲起:miss ra ...

  2. BZOJ2115 [Wc2011] Xor

    Description Input 第一行包含两个整数N和 M, 表示该无向图中点的数目与边的数目. 接下来M 行描述 M 条边,每行三个整数Si,Ti ,Di,表示 Si 与Ti之间存在 一条权值为 ...

  3. SQLServer 开启远程访问,也可逆向思维进行关闭

    为了可以通过TCP/IP协议远程访问SQLServer数据库,需要做以下几点: 在SQLServer所运行的服务器上,我们必须找到SQLServer所侦听的端口然后添加到WIndows防火墙的[允许入 ...

  4. HDU 1060 Left-most Digit

    传送门 Leftmost Digit Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Other ...

  5. windows搭建openacs编译环境

    1.下载ant工具用来编译openacs源码 apache-ant-1.8.2 下载地址http://ant.apache.org/ 这个文件不用编译,在目录bin/下有针对windows的ant 2 ...

  6. Linux X Window System运行原理和启动过程

    本文主要说明X Window System的基本运行原理,其启动过程,及常见的跨网络运行X Window System. 一) 基本运行原理 X Window System采用C/S结构,但和我们常见 ...

  7. python scrapy 获取华为应用市场APP评论数据

    scrapy入门 四步: 1. 创建一个新的Scrapy Project 2. 定义你需要从网页中提取的元素Item 3. 实现一个Spider类,通过接口完成爬取URL和提取Item的功能 4. 实 ...

  8. zencart资源

    http://www.zen-cart.cn/ http://www.ezencart.com/

  9. C#设计模式(3):抽象工厂模式(Abstract Factory)(转载)

    概述 在软件系统中,经常面临着“一系列相互依赖的对象”的创建工作:同时由于需求的变化,往往存在着更多系列对象的创建工作.如何应对这种变化?如何绕过常规的对象的创建方法(new),提供一种“封装机制”来 ...

  10. Linux系统日志及日志分析

    Linux系统日志及日志分析   Linux系统拥有非常灵活和强大的日志功能,可以保存几乎所有的操作记录,并可以从中检索出我们需要的信息. 大部分Linux发行版默认的日志守护进程为 syslog,位 ...