ブラックボックス

プログラミングのノウハウやライフハックをどんどん投稿していきたい

Oct 12, 2021 - 1 minute read - ノウハウ

【MySQL】ハイフン付きのデータベース(スキーマ)を操作する

何気なしにデータベース名にハイフン(-)が入っているデータベースを削除しようとしたらエラーが発生した。
データベース名にハイフンはあまり付けるべきではないと思うが、過去の慣習やらしがらみで使わざるを得ないこともある為、使用する方法をメモとして残しておく。

環境:

  • MySQL:8.0.26

とりあえず普通に色々操作してみる。
_mysql-test_というデータベースを作成したり削除したり。

mysql> create database mysql-test;
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 '-test' at line 1
mysql> drop database mysql-test;
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 '-test' at line 1

ハイフンが入ることで構文エラーとなってしまう。
ちなみに、これはテーブルでも同様。

回避する為にはデータベース名をバッククォート(`)で囲ってあげる。

mysql> create database `mysql-test`;
Query OK, 1 row affected (0.01 sec)
mysql> drop database `mysql-test`;
Query OK, 0 rows affected (0.02 sec)

これで問題なく実行された。