首页 > 解决方案 > SQL 错误 1064 声明 @VAR

问题描述

我正在研究“使用 SQL 和 Excel 进行数据分析”一书中的示例。源文件之一(称为LoadSQLServer.sql)以:

CREATE DATABASE SQLBook;

USE SQLBook;

DECLARE @LOADDIR VARCHAR(255) = '/somedir/testdata';
DECLARE @SQL NVARCHAR(MAX);

/*

more queries

*/

我尝试使用以下命令运行脚本:mysql -u root < LoadSQLServer.sql

但是我得到了错误:

第 5 行的 ERROR 1064 (42000):您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 'DECLARE LOADDIR VARCHAR(255) = '/somedir/testdata'' 附近使用正确的语法


在遇到上述脚本之前,我设法成功运行了以下脚本(称为script.sql):

CREATE DATABASE customer;   

USE customer;                                                            

CREATE TABLE customerslist (                                                
    id INT NOT NULL AUTO_INCREMENT,                                         
    forename VARCHAR(20) NOT NULL,                                          
    surname VARCHAR(20) NOT NULL,                                           
    PRIMARY KEY (id) );

/*

more queries

*/

用命令mysql -u root < script.sql。在这个脚本中没有DECLARE语句,所以问题LoadSQLServer.sql应该在这样的语句中。如何解决这个问题呢?

我在 Ubuntu 上工作,输出mysql --version是:

mysql  Ver 14.14 Distrib 5.7.22, for Linux (x86_64) using  EditLine wrapper

标签: mysqlsql

解决方案


您正在使用 SQL Server 的加载文件。MySQL 不是本书的合适数据库(随版本 8.0 更改),因此没有加载文件。

如果您在合适的计算机上,则可以下载 SQL Server Express。否则,我建议您下载 Postgres 并使用该版本。

注意:作为本书的作者,这是正确的做法。


推荐阅读