我可以在mysql的加载数据填充中使用变量吗

我可以在mysql的加载数据填充中使用变量吗,mysql,Mysql,我只有mysql的“工作知识” 是否可以在下面的加载数据填充语句中使用变量。我发现concat的语法错误 SET @DATA_DIR='/Documents/Projects/OCSCommerce/admin/src/main/testdata/csv'; -- import the roles SELECT 'Importing roles' AS ' '; LOAD DATA INFILE concat(@DATA_DIR, 'roles.csv') replace INTO TABLE

我只有mysql的“工作知识”

是否可以在下面的加载数据填充语句中使用变量。我发现
concat
的语法错误

SET @DATA_DIR='/Documents/Projects/OCSCommerce/admin/src/main/testdata/csv';

-- import the roles
SELECT 'Importing roles' AS ' ';
LOAD DATA INFILE concat(@DATA_DIR, 'roles.csv') replace
INTO TABLE roles
FIELDS ENCLOSED BY '"' TERMINATED BY ';' ESCAPED BY '"'
LINES TERMINATED BY '\r\n'
(id, created, lastUpdated, code, name, createUser_id, lastUpdateUser_id, visible, markForDelete);

如果我能从环境变量中得到目录值,那就更好了

不,文件名必须是文本。如果您需要动态创建它,则必须使用使用
PREPARE
的存储过程。啊,好的,谢谢,这是一个问题。也许shell脚本可能是一种解决方案……是的,用其他语言创建
LOAD DATA
命令是另一种解决方案。