关于mysql字段时间类型timestamp默认值为当前时间问题
来源:互联网 发布:mac f117笔记本 编辑:程序博客网 时间:2024/05/21 17:27
今天把应用部署到AWS上发现后台修改内容提交后程序报错,经过排查发现是更新数据的时候,有张数据表中的一个timestamp类型的字段默认值变成了"0000-00-00 00:00:00.000000"格式,导致解析失败造成的。
在mysql该字段的创建语句如下
`XXX` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP 正常情况下 应该是当前数据更改的时间格式
因为在本地开发环境测试过,没有该问题,应用环境一直,唯一不同的是,生产环境数据库用的是AWS的RDS的mysql,经过对错误信息的搜索,大致应该是mysql参数配置的问题。
看了下mysql官方文档
By default, the first TIMESTAMP column has both DEFAULT CURRENT_TIMESTAMP and ON UPDATE CURRENT_TIMESTAMP if neither is specified explicitly。
很多时候,这并不是我们想要的,如何禁用呢?
1. 将“explicit_defaults_for_timestamp”的值设置为ON。
2. “explicit_defaults_for_timestamp”的值依旧是OFF,也有两种方法可以禁用
1> 用DEFAULT子句该该列指定一个默认值
2> 为该列指定NULL属性。
mysql> show variables like '%explicit_defaults_for_timestamp%';+---------------------------------+-------+| Variable_name | Value |+---------------------------------+-------+| explicit_defaults_for_timestamp | OFF |+---------------------------------+-------+row in set (0.00 sec)
开发环境explicit_defaults_for_timestamp 的值是OFF
比对了下RDS中mysql的参数,发现这个参数值为0,因为rds中mysql的默认参数组是不允许修改的,所以创建个参数组,会默认把default的参数组继承过来,当时并不知道这里的0和1是怎么对应on和off的,所以就把值改成了1.然后重启rds。
此时发现就不会有该错误了。
将rds中mysql的参数改成如下情况 完美解决
explicit_defaults_for_timestamp = 1
- 关于mysql字段时间类型timestamp默认值为当前时间问题
- 关于mysql字段时间类型timestamp默认值为当前时间问题
- mysql timestamp 默认值当前时间
- mysql建表一个timestamp类型字段会默认为当前时间,TIMESTAMP与DATETIME区别
- 如何设定MySQL中timestamp类型字段自动设定为当前时间
- mysql 创建表时 日期字段默认值为当前时间
- mysql timestamp 默认时间为当前时间
- Mysql的时间列 默认值为当前时间
- Mysql的时间列 默认值为当前时间
- 关于Mysql的日期类型字段设置默认值为当前日期的解决方案
- mysql 字段timestamp设置默认值问题
- DB2设置时间类型字段默认为当前时间
- Mysql 设置datetime不能为当前时间,使用timestamp
- MySQL的datetime设置当前时间为默认值
- MySQL设置当前时间为默认值的方法
- MySQL设置当前时间为默认值的方法
- MySQL datetime数据类型设置当前时间为默认值
- MySQL datetime数据类型设置当前时间为默认值
- 有人说移动端程序员是泡沫
- PHP设计模式之:单例模式
- Android 中 ProGuard 混淆详解(一)
- Linux中批量关闭mysql中同一名字的多个进程(指令)
- js中选项卡的简单实现1
- 关于mysql字段时间类型timestamp默认值为当前时间问题
- react+redux+redux-deferred实现ajax异步请求,真的良心之作啊!
- Linux下重启BO服务步骤
- Spring集成Quartz定时任务框架介绍和Cron表达式详解
- C语言:有1,2,3,4四个数子,可以组成多少个互不相同且无重复的三位数
- Latex中thebibliography后面的数字的含义
- Android Multimedia框架总结(十七)音频开发基础知识
- Incomplete reply from server
- File类的createNewFile()与createTempFile()的区别