MySQLの予約語なんて知らなかった
今日の内容
大したことではありません。
タイトルの通り、MySQLの予約語なんて知らなかった故に
とてもツマラナイエラーにどハマりしていたということです。
情けないし時間の無駄〜と思ったのでメモ。
予約語について
MySQL :: MySQL 5.6 リファレンスマニュアル :: 9.3 予約語によると、SELECTやDELETEが予約語に該当するそう。
もし予約語をテーブル名などに使うんだとしたら、引用符で囲ってあげる必要がある。
ex) interval //引用符で囲わないとエラーになる mysql> CREATE TABLE interval (begin INT, end INT); ERROR 1064 (42000): You have an error in your SQL syntax ... near 'interval (begin INT, end INT)' //これは囲ってあるからおっけー mysql> CREATE TABLE `interval` (begin INT, end INT); Query OK, 0 rows affected (0.01 sec)
予約語の一覧はMySQL :: MySQL Server Version Reference :: 2.2 Keywords and Reserved Words in MySQL 5.6から確認できる。
単語の横に(R)
がついてるものが予約語みたい。
パッと見た感じ、予約語だって知らずについつい使っちゃいそうだな〜って感じたものはall
, case
, key
かな。
まあデータベースの内容によると思うので、個人的な感想ですが。。
ちなみに私のエラーの場合
予約語ちゃんの1つ、update
をカラム名に使ってました。へへ・・・。
自分しか使わないからって、適当にカラム名つけるからいけない。
通りでね、何回確認しても誤字があるわけでもないし文法的にも合ってるのにエラーが吐かれるわけですよ。
これからは気をつけよう。
全然関係ないけど、joinをあまりうまく使いこなせてないような気がするから、これまたちゃんと勉強したいところ。