前段时间因为想自己在家搭建一个工作上的环境,所以就把sql测试库数据导入自己电脑上,但是用Navicat导入的时候,设置的是‘遇到错误继续’,然后等运行sql语句结束后查询导入的结果,只有3个表导入成功。
然后从导入窗口查询问题,只有几张表导入成功,然后其他都是XX表不存在,然后再sql文件中找到建表语句,放在navicat运行窗口执行,就发现问题所在了,是因为
DROP TABLE IF EXISTS `agency_template`;
CREATE TABLE `agency_template` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`uid` int(10) NOT NULL COMMENT ‘代理商的id‘,
`template_id` int(10) NOT NULL COMMENT ‘使用的模版编号‘,
`logo_filename` varchar(256) NOT NULL,
`logo_addr` varchar(512) NOT NULL DEFAULT ‘‘ COMMENT ‘logo图片地址‘,
`alias_url` varchar(256) CHARACTER SET latin1 NOT NULL COMMENT ‘定制的url‘,
`create_at` int(11) NOT NULL,
`last_update_at` int(11) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `uid` (`uid`) USING HASH,
KEY `alias_url` (`alias_url`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=187 DEFAULT CHARSET=utf8;
就是这两句:
UNIQUE KEY `uid` (`uid`) USING HASH,
KEY `alias_url` (`alias_url`) USING BTREE
需要修改成:
UNIQUE KEY `uid` USING HASH (`uid`),
KEY `alias_url` USING BTREE (`alias_url`)
在公司就可以导入成功,但是在自己电脑不可以,只是因为mysql版本的问题
(经过:由于从navicat导出的时候是整个数据库导出的,所以sql文件很大,有1.2G,然后写程序将其分解成酶10000行一个文件就可以打开了,其实完全没必要,直接在navicat错误提示框就可以看到错误所在,不过这样也写了分解代码,还是有用的,接下来就是根据写的分解读取的程序将USING HASH和USING TREE的位置替换掉就可以了)