MySQL加载数据本地Infile - 路径作为用户变量

时间:2013-06-28 15:58:15

标签: mysql file-upload path user-defined-functions

我想在MySQL`LOAD DATA LOCAL INFILE'文件路径中包含一个用户变量。我们的小团队经常从Dropbox访问原始数据文件,因此每个人都必须在路径定义中查找/替换用户名。

我希望以下方法能够正常运行,但不断出现语法错误:

SET @USER := 'user';
SET sql_mode='PIPES_AS_CONCAT';
LOAD DATA LOCAL 
INFILE '/Users/' || @USER || '/Dropbox/Data/data.csv'

CONCAT()也失败了。有任何想法吗?谢谢!

此处提出的类似问题:Load data Infile @variable into infile error但没有接受答案。

1 个答案:

答案 0 :(得分:0)

来自MySQL documentation的引文:

  

文件名必须以文字字符串形式给出。在Windows上,将路径名中的反斜杠指定为正斜杠或加倍反斜杠。 character_set_filesystem系统变量控制文件名的解释。

这意味着它不能是预准备语句,存储过程或任何“服务器端”的参数。字符串/路径评估必须在客户端完成。