今回、MySQLで以下のようにテーブルを作成しようとしたところ、エラーが発生しました。
CREATE TABLE Test (price INT, option INT);
// ERROR 1064 (42000) at line 41: 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 'option INT)' at line 1
‘option INT)’ らへんに文法誤りがあるよー、と言われています。
調べてみたところ実はoption
というのは予約語で、SELECT
やDELETE
などと同様にMySQL内で意味を持つ単語なんですね。なので基本的にテーブル名やカラム名での使用が許可されていません。
予約語をテーブル名やカラム名で使用するには、以下のようにバッククォート(` `
)で囲ってあげる必要があります。
CREATE TABLE Test (price INT, `option` INT);
// Query OK, 0 rows affected (0.01 sec)
あとがき
以下の予約語に関しては、多くの人が使用していたためバッククォートなしでも使えるようになったみたいです。
ACTION
BIT
DATE
ENUM
NO
TEXT
TIME
TIMESTAMP
コメント