首页  >  问答  >  正文

mysql日期类型默认值'0000-00-00' 报错,是什么问题?

如题,本来是 从另一个数据库中导出的sql文件,在我电脑上导入报这个错误,不知道是不是mysql 版本问题。多方搜索无果,所以上来求助。

DROP TABLE IF EXISTS `workreport_member`;
CREATE TABLE `workreport_member` (
  `uid` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '用户ID',
  `nickname` char(16) NOT NULL DEFAULT '' COMMENT '昵称',
  `sex` tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT '性别',
  `birthday` date NOT NULL DEFAULT '0000-00-00' COMMENT '生日',
  `qq` char(10) NOT NULL DEFAULT '' COMMENT 'qq号',
  `score` mediumint(8) NOT NULL DEFAULT '0' COMMENT '用户积分',
  `login` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '登录次数',
  `reg_ip` bigint(20) NOT NULL DEFAULT '0' COMMENT '注册IP',
  `reg_time` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '注册时间',
  `last_login_ip` bigint(20) NOT NULL DEFAULT '0' COMMENT '最后登录IP',
  `last_login_time` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '最后登录时间',
  `status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '会员状态',
  PRIMARY KEY (`uid`),
  KEY `status` (`status`)
) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COMMENT='会员表';

下面这是在Sequel Pro 导入时报的错误

不知道我说清楚了没……

刚才又尝试了一下,我把值改成

`birthday` date NOT NULL DEFAULT '0001-01-01' COMMENT '生日',

貌似就可以了,有点迷惑,之前的sql 是从windows的navcat导出来的, 导入是在MAC 的Sequel Pro 导入的。


checkcheck2796 天前1711

全部回复(2)我来回复

  • 数据分析师

    数据分析师2017-10-01 00:52:17

    mysql日期类型默认值'0000-00-00' 报错,是什么问题?-PHP中文网问答-mysql日期类型默认值'0000-00-00' 报错,是什么问题?-PHP中文网问答

    围观一下哦,学习一下。

    回复
    0
  • 迷茫

    迷茫2017-03-16 09:11:54

    MySQL 5.7 以上版本默认禁止 0000-00-00 的日期。在 MySQL 的配置文件 [mysqld] 区域添加

    sql_mode="ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

    然后重启 MySQL


    回复
    0
  • 取消回复