mysql5.6 timestamp
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的更多相关文章
- 解决: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 ...
- 解决: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 ...
- 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 ...
- mysql5.x数据库文件导入mysql5.7数据库出错解决方法
由于mysql5.7 timestamp 类型不允许timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',创建表的是后会报异常 修改mysql5.7的配置文 ...
- MySQL5日期类型DATETIME和TIMESTAMP相关问题详解
MySQL5日期类型DATETIME和TIMESTAMP相关问题详解 MySQL5的日期类型有三种:DATETIME.DATE和TIMESTAMP,除了DATE用来表示一个不带时分秒的是日期,另外两个 ...
- mysql5.7 版本中 timestamp 不能为零日期 以及sql_mode合理设置
---恢复内容开始--- 摘要: mysql5.7版本相比较之前的版本有很多的特性的增加以及默认配置的改变,在使用中难免会遇到与之前的使用习惯或者项目需求不符的情况.就需要调整相应的变量的值,比如sq ...
- mysql5.6以上版本: timestamp current_timestamp报1064/1067错误
mysql5.6以上版本: timestamp current_timestamp报1064/1067错误 在创建时间字段的时候 DEFAULT CURRENT_TIMESTAMP表示当插入数据的时候 ...
- mysql5.7下的timestampn Error : Invalid default value for 'timestamp'
表格创建是爆了个错 Error : Invalid default value for 'timestamp' 参考:http://www.jb51.net/article/71107.htm 这版本 ...
- mysql5.6 TIME,DATETIME,TIMESTAMP
[背景] 5.6.4以后时间类型(TIME,DATETIME,TIMESTAMP)支持微秒 DATETIME范围 :'1000-01-01 00:00:00.000000' to '9999-12-3 ...
随机推荐
- 直接运行可执行文件linux终端一闪而过
运行elasticsearch的时候进入bin目录,ela 然后tab提示的内容中没有e..s..,很奇怪,然后我直接双击运行es,终端一闪而过,我就手动打开终端, ./elasticsearch 这 ...
- Java NIO、NIO.2学习笔记
相关学习资料 http://www.molotang.com/articles/903.html http://www.ibm.com/developerworks/cn/education/java ...
- TCP/IP详解 笔记十
IGMP Internet组管理协议 IGMP的作用:让一个物理网络上的所有系统知道主机所在的多播组: 让路由器知道多播数据报应该向哪个端口转发. IGMP有固定长度,没有可选数据,在ip头部的协议值 ...
- jmap命令详解
1.命令基本概述 Jmap是一个可以输出所有内存中对象的工具,甚至可以将VM 中的heap,以二进制输出成文本.打印出某个java进程(使用pid)内存内的,所有‘对象’的情况(如:产生那些对象,及其 ...
- mysql 一个典型的数据库建表建用户过程
cmd 命令不接 ";" mysql 命令后接 ";" 1.以管理员身份登录mysql mysql -u root –p 2.选择mysql数据库 use my ...
- 常用 SQL 语句
一.SQL中新增列或者说添加字段的语法: alter table 表名 add 列名 数据类型 二.例如:在表texttable中添加一列字符型字段colnew: alter table textta ...
- memcache 缓存的批量删除方案(转)
memcache 默认只支持使用delete(key)和 flush_all,这两种方法都太极端了,不能满足用户的特定需求,如:批量删除‘aaaaaaaa_’开头的所有缓存,这个时候该怎么办? 1 g ...
- 关于FlexPaper 2.1.2版本 二次开发 Logo 、打印、搜索、缩略图、添加按钮、js交互、右键菜单、书签等相关问题
2015-03-02 更新文章,由于需求修改,更改了flexpaper插件,故增加第9.10.11小节,下载代码时请注意. 先废话几句.最近用到文档在线浏览功能,之前用的是print2flash(一个 ...
- emmet-vim
最近啊,我投奔了网页的开发,看了一本<head first HTML and CSS>的书,感觉非常不错,然后又配置了一些vim里面用到的插件,现在我把学习到的东西记录下来! 首先,我不会 ...
- ubuntu系统自带的火狐(firefox)如何安装Adobe Flash
当你刚装完系统,发现打开某些网站时,提示你“需要安装flash”,然后你点击确定,过了一会,提示你安装失败. 我也是遇到这种情况.我第一个反应是,我先不用firefox,我安装chrome. 可是当你 ...