报错

MYSQL
mysql> alter table wp_comments add column comment_qq_id varchar(20) after user_id;
ERROR 1067 (42000): Invalid default value for 'comment_date'
点击展开查看更多

查看’comment_date’怎么回事

MYSQL
mysql> show columns from wp_comments;
点击展开查看更多
Field Type Null Key Default Extra
comment_date datetime NO 0000-00-00 00:00:00 -

对timestamp/datetime类型的字段如果不设置缺省值或没有标志not null时候在创建表时会报这个错误 这是因为sql_mode中的NO_ZEROR_DATE导制的,在strict mode中不允许'0000-00-00’作为合法日期

解决方法

1. 查看sql_mode

MYSQL
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_ENGINE_SUBSTITUTION

2. 更改slq_mode

NO_ZERO_DATE 改为 ALLOW_INVALID_DATES

MYSQL
mysql> set sql_mode='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,ALLOW_INVALID_DATES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';
点击展开查看更多

ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,ALLOW_INVALID_DATES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION

版权声明

作者: Chaim

链接: https://chaim.eu.org/posts/mysql%E7%9A%84no_zero_date/

许可证: CC BY-NC-SA 4.0

This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. Please attribute the source, use non-commercially, and maintain the same license.

开始搜索

输入关键词搜索文章内容

↑↓
ESC
⌘K 快捷键