“@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)手册页同样没用。我仍然不知道如何让该工具打印有用的错误消息,更不用说帮助我诊断问题了。

我有两个问题。

  1. 我需要查看手册的哪一部分来查找错误消息?
  2. 我怎样才能让这个工具提供有用的错误消息?

答案1

看起来您不能根据以下内容使用数据库名称作为变量堆栈溢出,sqlservercentral.com(同一个例子)。

已经有例子如何解决这个问题

相关内容