最高の夏ことはてなサマーインターン2018が今年も開催されています. いろいろあって今年も講義を担当させて頂いており, 今回は何故かデータベースの講義をすることになりました.
その講義の途中, インターン参加者の方から, 「MySQLのテーブル名やカラム名に予約語は使えますか?」と質問をもらったところ, 「アー... どうでしたっけね...?」となってしまい, きちんとお答えできなかったので, 調べました.
結論としては,
にあるように, 引用符(`
)で囲まれている場合は, 予約語もテーブル名やカラム名として使えます. MySQL 8.0.12で試すと, こういう感じなります:
mysql> create table int (i int); 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 'int (i int)' at line 1 mysql> create table `int` (i int); Query OK, 0 rows affected (0.11 sec)