2

我想在 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 错误但没有接受的答案。

4

1 回答 1

0

来自MySQL 文档的引用:

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

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

于 2013-08-21T21:01:45.193 回答