1. 程式人生 > >MySQL - 執行sql報錯USING BTREE

MySQL - 執行sql報錯USING BTREE

解決方法 時間 5.1 有一個 解決 ... blog .net name

問題與分析

在執行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導入數據時提示 USING BTREE 錯誤解決辦法

MySQL - 執行sql報錯USING BTREE