程序版本:帝国备份王
数据库版本:5.0.2
数据来源:Dedecms 5.7 SP1
错误记录:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'USING BTREE ) ENGINE=MyISAM DEFAULT CHARSET=gbk' at line 7
CREATE TABLE `dede_purview` ( `mid` mediumint(8) DEFAULT '0', `typeid` smallint(5) DEFAULT '0', `rank` smallint(6) DEFAULT NULL, `pkey` varchar(30) CHARACTER SET latin1 NOT NULL, `pvalue` text NOT NULL, KEY `pkey` (`pkey`) USING BTREE ) ENGINE=MyISAM DEFAULT CHARSET=gbk
解决方案:
打开要导入的文件在里面搜索 BTREE 找到如下内容
KEY `columnCindex` (`columnC`) USING BTREE
修改为
KEY `columnCindex` USING BTREE (`columnC`)
错误原因:在导入的时候报错,提示版本兼容问题,错误位置为“USING BTREE ) ENGINE=MyISAM DEFAULT CHARSET=gbk;”表名为dede_purview,为了快速解决问题,删除了“USING BTREE”,导入成功。后经搜索“USING BTREE”,发现这是MYSQL 5.1的一个BUG,其出现原因是mysql 5.1和mysql 5.0在处理到索引语句时有所区别,出现了不兼容的情况,在Mysql 5.1中建有UNIQUE KEY 的表导出时是这个样子的“KEY `pkey` (`pkey`) USING BTREE”,而Mysql 5.0处理的时候只能识别“KEY `pkey` USING BTREE (`pkey`)”。因此需要改一下Key的位置。网上还有解决方法是先把UNIQUE KEY 改成普通索引,导好后再改回来,这种解决办法适用于建有UNIQUE KEY.
最新评论