mysql错误总结-ERROR 1067 (42000): Invalid default value for TIMESTAMP
2018-01-28 14:58
555 查看
是因为sql_mode中的NO_ZEROR_DATE导制的,在strict mode中不允许'0000-00-00'作为合法日期
使用下面的命令查看sql_mode
mysql>show variables like 'sql_mode';
+---------------+-------------------------------------------------------------------------------------------------------------------------------------------+
| Variable_name | Value |
+---------------+-------------------------------------------------------------------------------------------------------------------------------------------+
| sql_mode | ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION |
+---------------+-------------------------------------------------------------------------------------------------------------------------------------------+
将上面的NO_ZERO_DATE改为下面的 ALLOW_INVALID_DATES
mysql> set sql_mode='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,ALLOW_INVALID_DATES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
上面的设置是临时设置,在重新登陆后,该设置又恢复为NO_ZERO_DATE
永久修改办法:
修改my.cnf文件,在[mysqld]中添加
sql-mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
重启mysql
使用下面的命令查看sql_mode
mysql>show variables like 'sql_mode';
+---------------+-------------------------------------------------------------------------------------------------------------------------------------------+
| Variable_name | Value |
+---------------+-------------------------------------------------------------------------------------------------------------------------------------------+
| sql_mode | ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION |
+---------------+-------------------------------------------------------------------------------------------------------------------------------------------+
将上面的NO_ZERO_DATE改为下面的 ALLOW_INVALID_DATES
mysql> set sql_mode='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,ALLOW_INVALID_DATES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
上面的设置是临时设置,在重新登陆后,该设置又恢复为NO_ZERO_DATE
永久修改办法:
修改my.cnf文件,在[mysqld]中添加
sql-mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
重启mysql
相关文章推荐
- mysql创建table时出错 ERROR 1067 (42000): Invalid default value for ' '
- ERROR 1067 (42000): Invalid default value for .....
- mysql的Invalid default value for 'timestamp'"错误解决
- ERROR 1067 (42000): Invalid default value for '***'
- ERROR 1067 (42000): Invalid default value for 'currentTime'
- ERROR 1067 (42000): Invalid default value for
- 安装Magento报错:SQLSTATE[42000]: Syntax error or access violation: 1067 Invalid default value for 'perio
- ERROR 1067 (42000): Invalid default value for 'add_time'
- mysql 5.7 invalid default value for timestamp field
- mysql 遇到了Invalid default value for 'created_at'的错误
- 【FAQ】mysql 初始化 timestamp,提示 Invalid default value for 'xxx'
- mysql - #1067 - Invalid default value
- 【数据库】Invalid default value for 'create_date' timestamp field
- 【数据库】Invalid default value for 'create_date' timestamp field
- MySQL 5.7 Invalid default value for 'CREATE_TIME'报
- mysql 报错 ERROR 1101 (42000): BLOB/TEXT column can’t have a default value
- Error setting value Method "setAge" failed for object ..Ljava.lang.String 错误总结
- MySQL 5.7 Invalid default value for 'CREATE_TIME'报错的解决方法
- Mysql添加用户错误:ERROR 1364 (HY000): Field 'ssl_cipher' doesn't have a default value解决方法
- 导入数据库时报错1067 – Invalid default value for ‘字段名’