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 导入的。
问题解答
回答1:MySQL 5.7 以上版本默认禁止 0000-00-00 的日期。在 MySQL 的配置文件 [mysqld] 区域添加
sql_mode='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_pISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'
然后重启 MySQL
回答2:hyrijk用户已经提出解决方案,http://www.07net01.com/2016/04/1479450.html对sql_mode有此许补充说明
相关文章:
1. MYSQL 根据两个字段值查询 但两个值的位置可能是互换的,这个怎么查?2. 求救一下,用新版的phpstudy,数据库过段时间会消失是什么情况?3. mysql replace 死锁4. mysql - C#连接数据库时一直这一句出问题int i = cmd.ExecuteNonQuery();5. javascript - 微信网页开发从菜单进入页面后,按返回键没有关闭浏览器而是刷新当前页面,求解决?6. extra没有加载出来7. android - 安卓做前端,PHP做后台服务器 有什么需要注意的?8. python - 数据与循环次数对应不上9. php传对应的id值为什么传不了啊有木有大神会的看我下方截图10. mysql - ubuntu开启3306端口失败,有什么办法可以解决?
