Mysql ERROR 1067: Invalid default value for '字段名'

这个问题是发上在创建表的时候,根据业务需要,创建入下表结构

CREATE TABLE `sys_acl` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '权限id',
  `code` varchar(20) NOT NULL DEFAULT '' COMMENT '权限码',
  `name` varchar(20) NOT NULL DEFAULT '' COMMENT '权限名称',
  `acl_module_id` int(11) NOT NULL DEFAULT '0' COMMENT '权限所在的权限模块id',
  `url` varchar(100) NOT NULL DEFAULT '' COMMENT '请求的url, 可以填正则表达式',
  `type` int(11) NOT NULL DEFAULT '3' COMMENT '类型,1:菜单,2:按钮,3:其他',
  `status` int(11) NOT NULL DEFAULT '1' COMMENT '状态,1:正常,0:冻结',
  `seq` int(11) NOT NULL DEFAULT '0' COMMENT '权限在当前模块下的顺序,由小到大',
  `remark` varchar(200) DEFAULT '' COMMENT '备注',
  `operator` varchar(20) NOT NULL DEFAULT '' COMMENT '操作者',
  `operate_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '最后一次更新时间',
  `operate_ip` varchar(20) NOT NULL DEFAULT '' COMMENT '最后一个更新者的ip地址',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8mb4;

执行到 ‘operate_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '最后一次更新时间',时报错,具体报错信息是,Mysql ERROR 1067: Invalid default value for 'operate_time'。

百度了很多方法,大致都是让在mysql的安装目录下,打开my.ini或my.cnf文件,新增 sql_mode = ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,然后重启mysql。

然鹅,这个方法并没有什么暖用。

我本地mysql版本比较老,是5.0 的,不知道是不是因为版本的原因导致的,上面的方法对我并不生效。

我是通过如下方法解决的。

按照如下一二三的步骤执行就ok了

mysql error:1067

你可能感兴趣的:(Mysql ERROR 1067: Invalid default value for '字段名')