「@DB_DATABASE_NAME」の近くの構文が正しくありません。

「@DB_DATABASE_NAME」の近くの構文が正しくありません。

次のコマンドを送信してMySQLデータベースとテーブルを作成しようとしています。mysql(1)テキストファイルを介して。ファイルは簡単です。

$ cat test.sql
SET @DB_DATABASE_NAME = "test_db";
SET @DB_TABLE_NUMBERS = "name_number";

DROP DATABASE IF EXISTS @DB_DATABASE_NAME;
CREATE DATABASE IF NOT EXISTS @DB_DATABASE_NAME;

USE @DB_DATABASE_NAME;

CREATE TABLE IF NOT EXISTS @DB_TABLE_NUMBERS
(
        `nn_id` INT PRIMARY KEY AUTO_INCREMENT,
        `nn_name` VARCHAR(64) CHARACTER SET utf8,
        `nn_number` VARCHAR(18) CHARACTER SET utf8
);

そして呼び出されるコマンドはmysql非常に簡単です。問題は、何か問題があり、mysqlそれが何であるかを私に伝えることを拒否することです。

$ mysql -v -uroot -pMMGhbfb8sFYYbJCh < test.sql
--------------
SET @DB_DATABASE_NAME = "test_db"
--------------

--------------
SET @DB_TABLE_NUMBERS = "name_number"
--------------

--------------
DROP DATABASE IF EXISTS @DB_DATABASE_NAME
--------------

ERROR 1064 (42000) at line 4: You have an error in your SQL syntax; check the ma
nual that corresponds to your MariaDB server version for the right syntax to us
e near '@DB_DATABASE_NAME' at line 1

検索ERROR 1064 (42000)無関係なクリックが発生しています。そして読んでくださいmysql(1)マニュアルページまた、役に立たない。問題を診断するのに役立つこんにちは便利なエラーメッセージを印刷するツールを入手する方法もまだわかりません。

2つの質問があります。

  1. エラーメッセージを見つけるには、マニュアルのどの部分を見るべきですか?
  2. このツールに役立つエラーメッセージを表示させるにはどうすればよいですか?

答え1

データベース名をベース変数として使用できないようです。スタックオーバーフローsqlservercentral.com(同じ例)。

すでに持っているはいこの問題を解決する方法

関連情報