MySQLでデータベースを作成する際に create database
を使用して作成していますが
データベース名にハイフンやバッククォートが含まれていたり、databaseという名前では作成出来なかったため、やり方を調べてみました。
create databaseでの作成
まずは普通にデータベース名testを作成してみます。
mysql> create database test;
Query OK, 1 row affected (0.00 sec)
データベース名databaseで作成です。
mysql> create database database;
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 'database' at line 1
ハイフンとバッククォートが含まれているデータベース名です。
mysql> create database test-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 test`test;
`>
バッククォートを使用して作成
データベース名がdatabaseやハイフンなどが含まれる場合、バッククォートで囲むことで作成出来ます。
mysql> create database `database`;
Query OK, 1 row affected (0.00 sec)
mysql> create database `test-test@^`;
Query OK, 1 row affected (0.00 sec)
バッククォートをデータベース名に入れたい場合
上記の通りバッククォートで囲むだけでは作成出来ませんでした。
mysql> create database `test``;
`>
バッククォートを含めたい場合はバッククォートで囲み、その中にバッククォート2つ入れることで作成出来ました。
mysql> create database `test```;
Query OK, 1 row affected (0.00 sec)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| test` |
+--------------------+
バックスラッシュをデータベース名に入れたい場合
バックスラッシュを入れる場合もバッククォートで囲んだだけでは作成出来ませんでした。
mysql> create database `test\`;
`>
mysql> create database `test\/`;
Query OK, 1 row affected (0.00 sec)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| test\/ |
+--------------------+