開発チームのメンバーは、リモートグラフィックインターフェースを介して名前に「-」を含むデータベースを作成しました。私の考えでは2番目はレガシーデータベースです)。
次のコマンドで削除しようとしています。
DROP DATABASE "dbname-a";
コマンドはmysql
コマンドラインインターフェイス内にありますが、エラーが発生します。
エラー1064(42000):SQL構文が正しくありません。行1の「dbname -a」の近くで使用する正しい構文については、MySQL Serverバージョンのマニュアルを確認してください。
""の有無にかかわらず、データベース名はもちろん、 ""内でもデータベース名を使用してみました。すべてのバリアントに同じ構文エラーがあります。
何をすべきか?
答え1
正しい方法はバックティックを使うことだと思います。たとえば、
DROP DATABASE `dbname-a`
これは次のような場合に便利です。MySQL予約キーワードしかも。スタックオーバーフロー投稿に関する追加情報 -MySQLで一重引用符、二重引用符、およびバックティックを使用する場合。
答え2
結局、次のようにコマンドラインからそれを削除する必要がありました。
mysqladmin drop "dbname-a"
~からOracle 5.7リファレンスマニュアル - mysqladmin
データベース名の削除
db_nameという名前のデータベースとそのテーブルの両方を削除します。