다음 명령을 보내 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(같은 예).
이미 가지고 있다예이 문제를 해결하는 방법