![“@DB_DATABASE_NAME”附近的语法不正确](https://linux22.com/image/148494/%E2%80%9C%40DB_DATABASE_NAME%E2%80%9D%E9%99%84%E8%BF%91%E7%9A%84%E8%AF%AD%E6%B3%95%E4%B8%8D%E6%AD%A3%E7%A1%AE.png)
我正在尝试通过发送命令来创建 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)
手册页同样没用。我仍然不知道如何让该工具打印有用的错误消息,更不用说帮助我诊断问题了。
我有两个问题。
- 我需要查看手册的哪一部分来查找错误消息?
- 我怎样才能让这个工具提供有用的错误消息?
答案1
看起来您不能根据以下内容使用数据库名称作为变量堆栈溢出,sqlservercentral.com(同一个例子)。
已经有例子如何解决这个问题