mysql 5.6 TIMESTAMP
前段时间,系统MySQL从5.5升级到了5.6,系统出现了大量的异常。大部分异常引起原因是由于TIMESTAMP的行为发生了变化。
TIMESTAMP在MySQL5.5中的行为
- 第一个未设置默认值的TIMESTAMP NOT NULL字段隐式默认值: CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
- 后面未设置默认值的TIMESTAMP NOT NULL字段隐式默认值: 0000-00-00 00:00:00
- TIMESTAMP NOT NULL字段插入NULL时,会使用隐式默认值: CURRENT_TIMESTAMP
- 不支持多个CURRENT_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参数未来会消失
- 我们不要过度依赖数据库的特性,这些特性会给应用程序造成掣肘
mysql 5.6 TIMESTAMP相关推荐
- 深入探讨JDBC往MySQL中插入Timestamp类型字段报错问题
背景描述 最近处于工作需要,用到了Apache的commons dbutils包来操作数据库.在保存数据到MySQL数据库时,报了一个空指针异常,作为开发多年的Java老鸟,最不怕的就是空指针异常,于 ...
- mysql 表的timestamp为自动添加
新设计表时可以执行语句: `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP C ...
- MySQL中有关TIMESTAMP和DATETIME的总结
一.MySQL中如何表示当前时间? 其实,表达方式还是蛮多的,汇总如下: CURRENT_TIMESTAMP CURRENT_TIMESTAMP() NOW() LOCALTIME LOCALTIME ...
- MySQL DTAETIME、TIMESTAMP、DATE、TIME、YEAR(日期和时间类型)
MySQL 中有多处表示日期的数据类型:YEAR.TIME.DATE.DTAETIME.TIMESTAMP.当只记录年信息的时候,可以只使用 YEAR 类型. 每一个类型都有合法的取值范围,当指定确定 ...
- linux mysql timestamp_MYSQL中TIMESTAMP类型的使用
MYSQL中TIMESTAMP类型的默认值 MYSQL中TIMESTAMP类型可以设定默认值,就像其他类型一样. 1.自动UPDATE 和INSERT 到当前的时间: 表: ------------- ...
- mysql DATETIME和TIMESTAMP类型
以mysql 5.7.20 为例 一直以来,理解有偏差,作此记录,纠正 一.DATETIME和TIMESTAMP 都有高达微秒(6位)的精度 范围 DATETIME 1000-01-01 00: ...
- mysql字段使用timestamp类型和默认值CURRENT_TIMESTAMP表示默认为时间,类似mssql的getdate()功能;字段自增...
在mssql数据库中,时间字段如果想使用当前的时间,默认值是 getdate() 在mysql里面,如果是用 datetime类型,值用now() 是不允许的. 修改为 timestamp类型和默 ...
- 细说MySQL的时间戳(Timestamp)类型
转载 生产环境中部署着各种版本的MySQL,包括MySQL 5.5/5.6/5.7三个大版本和N个小版本,由于MySQL在向上兼容性较差,导致相同SQL在不同版本上表现各异,下面从几个方面来详细介绍时 ...
- MySQL的时间戳(Timestamp)类型学习
生产环境中部署着各种版本的MySQL,包括MySQL 5.5/5.6/5.7三个大版本和N个小版本.由于MySQL在向上兼容性较差,导致相同SQL在不同版本上表现各异,尤其是对于时间戳数据类型.下面从 ...
最新文章
- 写作预报之Hyper-V Server的图形化管理系统配置!
- 2020互联网校招薪资列表及谈薪注意事项
- [Python人工智能] 七.什么是过拟合及dropout解决神经网络中的过拟合问题
- 面试pythone_python面试常见问题有哪些
- DbContext 和ObjectContext两者的区别
- 一个黑色全屏的计时器_我入手了一个1000多的智能手环,值吗?|Fitbit Charge 4测评...
- python bootstrap_Python-bootstrap
- Bootstrap 分页导航的对齐方式
- java 写一个简单的计算器
- h5居中loading_实现整个html居中最简单方法
- Google Play关键词选词方法及常用选词工具
- 计算机无线键盘没反应,电脑怎么连接无线键盘 电脑连接无线键盘没反应怎么办...
- 【DDR3_Electrical Characteristics and AC Timing】_ Setup,Hold and Slew Rate Derating
- php计算一年多少周,同时计算出这一周的开始时间和结束时间(可选返回时间戳或日期)
- java初级笔记(翁恺男神
- 【活动报名】 拥抱公平《 Impact Tech, She Can 》
- oracle数据库中常用语法,oracle数据库常用语法(中文注释版)
- 有关多项式处理的各种算法总结
- 申请专利必须把技术公开吗?
- video标签监听事件
热门文章
- Graphviz样例之有限状态自动机
- 语言的口味(taste)
- 用python画四叶草-使用 python 操作 redis
- python软件下载-python软件下载
- 学python买什么书-19年学习Python有什么好的书籍推荐吗?
- 学python能做什么类型的工作-做自动化,学python要到那种程度呢?
- 用python画八卦图-用Python中的画图工具turtle绘制八卦图
- 零基础学python还是c语言-C语言是学python的基础吗?
- python自动化办公真的好用吗-Python做什么更合适?|老男孩Python自动化运维
- python编程100例-Python3经典100例(①)