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