2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

orderという名前のカラムをDROPできなかった時の解決法

Last updated at Posted at 2017-11-05

つまづいたこと

あるテーブルで順番を表す「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年余りで学んだので、
些細なことですが投稿してみました。
生温かく見守っていただき、間違いがあれば指摘していただければ幸いです。

2
1
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?