MYSQL5.7 datetime 默认值为'0000-00-00 00:00:00'值无法创建问题
只有自己愿意成就自己,才能成为人上人
2 人赞同了该文章

表结构

DROPTABLEIFEXISTS`t_consts_classify`;CREATETABLE`t_consts_classify`(`id`int(11)NOTNULLAUTO_INCREMENT,`name`varchar(100)NOTNULLDEFAULT''COMMENT'名称',`code`varchar(50)NOTNULLDEFAULT'',`parent_code`varchar(50)NOTNULLDEFAULT'0'COMMENT'父级别code',`sort`int(11)NOTNULLDEFAULT'0'COMMENT'排序',`create_time`datetimeNOTNULLDEFAULT'0000-00-00 00:00:00',`create_user`varchar(32)NOTNULLDEFAULT'system',`update_time`timestampNOTNULLDEFAULTCURRENT_TIMESTAMPONUPDATECURRENT_TIMESTAMP,`update_user`varchar(32)NOTNULLDEFAULT'system',`del`tinyint(1)NOTNULLDEFAULT'0',PRIMARYKEY(`id`))ENGINE=InnoDBAUTO_INCREMENT=37DEFAULTCHARSET=utf8COMMENT='课程类别表';

报错

ERROR1067(42000):Invaliddefaultvaluefor'create_time'

解决方案

使用root登录数据库,命令行界面执行
select@@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
继续执行
SETGLOBALsql_mode='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';

总结

NO_ZERO_IN_DATE,NO_ZERO_DATE