2013-06-28 34 views
2

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

我期待下面的工作,但不断收到语法错误:

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但没有接受答案。

回答

0

MySQL documentation引文:

文件名必须作为一个字符串。在Windows上,在路径名称中将反斜杠指定为正斜杠或反斜杠。 character_set_filesystem系统变量控制文件名的解释。

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