导入sql文件报 USING BTREE 错误解决办法
错误
在往服务器 上部署项目,运行sql文件后 ,就出现了如下错误:
[Err] 1064 - 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, CONSTRAINT tb_roles_menus_ibfk_1
FOREIGN KEY (menu_id
) REFERE’ at line 5;
翻译过来为:您的SQL语法有错误;请查看对应于MySQL服务器版本的手册,以获取在“USING BTREE;
原因
意思就是说两个数据库版本不一致,导致错误,后来经过查询发现,mysql 5.1版本有错误;和mysql 5.0以及其他版本在处理到索引语句时有所区别,才会报这种错,后来又用两种版本的导出sql文件 ,专门对比了下
如图:
MySql5.1.6版本
mysql-5.6.44版本
两边的语句有明显差别。
解决办法
1.删除主键primary KEY 主键id后的 USING BTREE;
2.修改 KEY role_id
(role_id
) USING BTREE, 语句格式为KEY role_id
USING BTREE (role_id
),错误得到解决。
(如有不对 ,欢迎指正)