美文网首页程序员php知识总结
Navicat导出再导入时,出现invalid default

Navicat导出再导入时,出现invalid default

作者: 响呼雷 | 来源:发表于2018-06-19 15:34 被阅读13次

    我说从linux服务器转存的sql文件,在本地运行时发生这样的错误,我就很烦啊,各种百度,我气得就一个一个的表执行sql语句,其中建表的sql语句是这样的:

    DROP TABLE IF EXISTS `mt_account_log`;

    CREATE TABLE `mt_account_log` (

      `id` int(11) NOT NULL AUTO_INCREMENT,

      `user_id` int(11) NOT NULL COMMENT '用户ID',

      `target_id` int(11) NOT NULL DEFAULT '0' COMMENT '目标id,type决定',

      `amount` decimal(16,6) NOT NULL DEFAULT '0.000000' COMMENT '金额',

      `note` varchar(45) NOT NULL COMMENT '流水说明',

      `type` tinyint(1) NOT NULL DEFAULT '0' COMMENT '资金流水类型;0=>''消费'',1=>''充值'', 2=>''返现'',3=>''返佣'',4=>''提现'',5=>''签到'',6=>''平台赠送'' 请参考配置ACCOUNT_LOG',

      `status` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '1-正常,0-无效',

      `total_amount` decimal(16,6) DEFAULT '0.000000',

      `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',

      `update_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,

      PRIMARY KEY (`id`),

      KEY `user_id` (`user_id`) USING BTREE

    ) ENGINE=InnoDB AUTO_INCREMENT=32255 DEFAULT CHARSET=utf8;

    其中create_time这个字段出现这样的错误:“[Err] 1067 - Invalid default value for 'create_time'”

    我就纳闷,同样的数据库管理工具,导出来导进去报了30多万的错误,100多张表就导进去两张,你说气不气!!!

    通过问题,大家可以看到create_time字段的类型是datetime,在navicat中执行的时候就报错,然后百度到说是mysql5.6之前的版本不支持datetime类型,就下载了mysql5.6安装后,数据表全部导进去了!!!问题就解决了。

    一、在Navicat中新建查询,执行  select version();  查看你的mysql版本,如果是低版本去官方下载mysql5.6版本或者更高的版本都行;

    二、在你安装的phpstudy中mysql目录下的文件清理干净(一定要备份你之前羡慕的数据库!!!);

    三、https://dev.mysql.com/downloads/mysql/5.6.html#downloads  官方地址,根据自己电脑配置下载,解压到phpstudy中mysql目录下

    然后复制my-default.ini,改成my.ini,修改配置路径

    basedir = D:\phpStudy\MySQL

    datadir = D:\phpStudy\MySQL\data

    四、以管理员运行cmd,cd到../phpStudy\MySQL\bin,执行 mysqld -install   ,显示如图这就成功了

    五、重启phpstudy,然后右键-》mysql工具-》重置密码

    相关文章

      网友评论

        本文标题:Navicat导出再导入时,出现invalid default

        本文链接:https://www.haomeiwen.com/subject/vgiaeftx.html