我正在尝试编写一个 MySQL 脚本来将数据导入到我的 Linux 服务器的表中。这是名为 的脚本update.sql:
SET @query = CONCAT("LOAD DATA LOCAL INFILE '", @spaceName, "' INTO TABLE tmp FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n';");
PREPARE stmt FROM @query;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
Run Code Online (Sandbox Code Playgroud)
而且,我编写了一个名为 bash 脚本main.sh:
mysql -h "localhost" -u "root" "-pmypassword" "mydb" -e "set @spaceName=\"$1\";source update.sql;"
Run Code Online (Sandbox Code Playgroud)
然后我执行./main.sh France.list. 这France.list是我试图导入到我的数据库中的数据文件。
但是我收到一个错误:
文件中第 2 行的 ERROR 1295 (HY000):“update.sql”:准备好的语句协议尚不支持此命令
我发现了这个问题:
MySQL - Load Data Infile with variable path
那么,这是否意味着无法将参数传递给LOAD DATA …