つまづいたこと
あるテーブルで順番を表す「order」という名前のカラムを消そうとして、以下のコマンドを打ったらエラーになった。
ALTER TABLE table_name DROP order;
mysql> ALTER TABLE table_name DROP order;
ERROR 1064 (42000): 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 'order' at line 1
解決方法
以下のように、カラム名をバッククォートで囲む。
ALTER TABLE table_name DROP `order`;
解決に向けて行ったこと
You have an error in your SQL syntax...のエラーは括弧が足りないとかそういう時にも出てきたので、ぱっと見では原因がわからなかった。
ただ'order' at line 1
とあったのでそれがキーになっているかと予想。
ERROR 1064 (42000)
でググった。
そうすると、1件目にヒットしたサイトでorderが予約語のためカラム名に設定できないことがわかる。
予約語を避けるべしと記載してあった。
だが、そういうカラム名が実際についてしまっているので、それでは解決にならない。
さらに複数の検索結果を見て回ったところ、バッククォートで囲むと実行できるとの記載があった。
おそらく、カラムをADDする時も``をつけていたんでしょう。
あとがき
初めてのQiita記事です。
とにかく発信することが大事というのをエンジニア人生4年余りで学んだので、
些細なことですが投稿してみました。
生温かく見守っていただき、間違いがあれば指摘していただければ幸いです。