'@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(같은 예).

이미 가지고 있다이 문제를 해결하는 방법

관련 정보