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

摘要:
笔者拷贝的是my-default.cnf,将它放到其他目录,按照上面修改完毕之后,更名为my.cnf,然后拷贝到/etc目录再重启下mysql就大功告成了。

mysql5.7

运行sql脚本时报错

1 [Err] 1067 - Invalid default value for 'UPDATE_TIME'
2 [Err] CREATE TABLE`V_TBL_AMOUNT_REASON` (
3   `ID` int(11) NOT NULLAUTO_INCREMENT,
4   `AMOUNT_CODE` varchar(10) NOT NULL,
5   `AMOUNT_VALUE` varchar(255) NOT NULL,
6   `UPDATE_TIME` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP,
7   PRIMARY KEY(`ID`)
8 ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;

这个问题和mysql中sql_mode有关系,我们可以采用两种方法来查看它的值

方法一:

SHOW VARIABLES LIKE 'sql_mode%';

查询得到入下信息

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

方法二:

SELECT @@sql_mode;

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

解决办法

修改mysql配置文件(修改完重启服务)

win下修改my.ini

sql_mode='STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'
#sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'

linux

在my.cnf[mysqld]下添加

sql-mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION  

Mac系统下:

在MacOS中默认是没有my.cnf 文件,如果需要对MySql 进行定制,拷贝/usr/local/mysql/support-files/目录  
中任意一个.cnf 文件。笔者拷贝的是my-default.cnf,将它放到其他目录,按照上面修改完毕之后,更名为  
my.cnf,然后拷贝到/etc目录再重启下mysql就大功告成了。

免责声明:文章转载自《解决:mysql5.7 timestamp默认值‘0000-00-00 00:00:00’报错》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇vue单页面项目返回上一页无效,链接变化了,但是页面没有变化DataTable某一列的最大值下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Oracle中TIMESTAMP时间的显示格式

Oracle中的TIMESTAMP数据类型很多人用的都很少,所以即使最简单的一个查询返回的结果也会搞不清楚到底这个时间是什么时间点。 例如: 27-1月 -08 12.04.35.877000 上午 这个时间到底是几点呢?中午12:04分,那就错了,其实使用to_char函数转换后得到如下结果: 2008-01-27 00:04:35:877000 说明这...

Oracle函数应用与查询聚合统计

Oracle预定义函数 Oracle数据库系统中定义了很多的函数(预定义)。这些函数能够完成本身特有的数据操作功能,执行效率更高并重复使用。 Oracle中的预定义函数按照对数据的操作执行特征可以分为: 单行函数——对每个记录执行一次 聚合函数(多行函数)——对多个记录行执行一次 单行函数 字符串函数 日期时间函数 数学计算函数 其它特殊函数 字符串操作函...

logstash之input、codec学习

Logstash最强大的功能在于丰富的过滤器插件。此过滤器提供的并不单单是过滤的功能,还可以对进入过滤器的原始数据进行复杂的逻辑处理。甚至添加独特的事件到后续流程中。 1、logstash基本语法组成 logstash主要由三部分组成:input、filter、output。而filter就是过滤器插件,这个组件可以不要,但是这样子就不能体现出logtas...

微信开发(一):用JSAPI做微信支付+微信卡包(代金券)

做微信支付前期准备: 1,服务好开通微信支付。 2,公众账号ID:AppId。 3,公众账号密钥:AppSecret。 4,微信支付密钥:Key。 第一步:获取用户信息并跳转到需要微信支付的页面 public void ProcessRequest (HttpContext context) { var returnUr...

logstash过滤器插件filter详解及实例

1、logstash过滤器插件filter 1.1、grok正则捕获 grok是一个十分强大的logstash filter插件,他可以通过正则解析任意文本,将非结构化日志数据弄成结构化和方便查询的结构。他是目前logstash 中解析非结构化日志数据最好的方式 grok的语法规则是: %{语法:语义} “语法”指的是匹配的模式。例如使用NUMBER模式可...

时间那点儿事儿 -- 时间戳,时区,冬令时,夏令时

关于时间的那点儿事儿 -- 时间戳,时区,冬令时,夏令时 UTC、GMT、PST,冬令时、夏令时 看起来是不是很懵,看完本文后相信关于时间你会有一个清醒的认知。 时间按照不同的角度可以划分为: 时间戳 时区 冬令时,夏令时 一、时间戳 时间戳:距离一个历史上一个标准参照时间经过的秒数(毫秒数)。 有两种常用时间参照点: 1970-01-01 00:0...