Skip to content

使用MySQL5.7创建表时有报"Error 1067: Invalid default value for 'expires_at'"的解决办法 #1

@drone789

Description

@drone789

假如没有使用bobo老师实验中的MySQL5.6 ,而是使用了5.7及以上,可能报Error 1067: Invalid default value for 'expires_at'

问题解析:是高版本的SQL模式默认不允许NO_ZERO_IN_DATE,NO_ZERO_DATE,如下:
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 |
+---------------+-------------------------------------------------------------------------------------------------------------------------------------------+

可以通过:
SET GLOBAL sql_mode = '';
然后,重新来一遍数据库导入。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions