次のコマンドを送信して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
データベース名をベース変数として使用できないようです。スタックオーバーフロー、sqlservercentral.com(同じ例)。
すでに持っているはいこの問題を解決する方法