AR ホームベーカリー

オイラのアウトプット用ホームベーカリー!

MySQL の予約語

groups というテーブルがあるんだけど、SELECT を投げようとして syntax error になった。

mysql> SELECT * FROM groups;
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 'groups' at line 1

あーはん? と思ったんだけど、そういえばワンセンテンスだしもしかして予約語か? などと思い至る。 こういう時はテーブル名をシングルクォートかバッククォートで囲えば大体なんとかなるんや!

mysql> SELECT * FROM `groups`;

...

4545 rows in set (0.04 sec)

ハーイッタ。

MySQL予約語一覧

こう。 結構あるけど、ActiveRecord 側でブロックしないし、MySQL 側もシュッと作れてしまうので注意が必要。 せめて MySQL 側のエラーは syntax error で丸めるにしても、「予約語 (reserved words) じゃねえの?」ってサジェスト出してほしい。 内部的には一覧持ってると思うんだけどなー。

dev.mysql.com