MySQL - 執行sql報錯USING BTREE
阿新 • • 發佈:2018-12-07
解決方法 時間 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