MySQL - 执行sql报错USING BTREE

Posted 雨临Lewis

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL - 执行sql报错USING BTREE相关的知识,希望对你有一定的参考价值。

问题与分析

在执行sql文件时发现报错如下:

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....

该错误导致有一个表创建失败,一时间很诧异。因为我所执行的sql语句是由SQLyog导出来的,怎么会有语法错误呢?因为报错里的中文字符变成了乱码,一开始以为是sql语句里的中文字符存在着编码问题,重新修改了好几遍,最后把中文字符去掉了也还是会报同样的错误。

最后百度后才知道,原来这是MySQL的一个bug:MySQL 5.1和MySQL 5.0在处理到索引语句时有所区别,我所执行的sql语句是从高版本的MySQL里导出来的。

当存在UNIQUE KEY的表导出来时,其sql如下:

UNIQUE KEY `idx_name` (`column_name`) USING BTREE

对于该语句,低版本的MySQL是不能识别的,所以就报错了。

解决方法

将高版本MySQL导出来的sql语句里的column_name调整到USING BTREE后边就行了,如下:

UNIQUE KEY `idx_name` USING BTREE (`column_name`)

参考链接

以上是关于MySQL - 执行sql报错USING BTREE的主要内容,如果未能解决你的问题,请参考以下文章

mysql 报错:Error Code: 1175. You are using safe update mode and you tried to update a table without a

mysql执行 sql文件遇到USING BTREE ) ENGINE=MyISAM DEFAULT CHARSET=utf8错误

Linux系统安装MySQL报错“ Access denied for user ‘root‘@‘localhost‘ (using password: YES)“

mac登陆mysql报错ERROR 1045 (28000): Access denied for user ‘xxx‘@‘localhost‘ (using password: NO)

连接mysql报错Access denied for user 'root'@'localhost' (using password: YES)解决办法

最新 mysql登录报错“Access denied for user 'root'@'localhost' (using password: NO”的处理方法