我有一个带有一些MySQL命令的文件,用于将单个列加载到数据库表中:
TRUNCATE TABLE datamap;
LOAD DATA LOCAL INFILE 'datamap.txt'
INTO TABLE datamap
Fields terminated by ','
enclosed by '"'
escaped by '^'
Lines terminated by '\r\n'
(datapath);
数据路径文件包含文件及其目录的列表,即x:\ files \ filename1.txt
所有文件现在都在一个目录中,我想将路径硬编码到上面的命令中,这样我只能加载文件名,但是将完整路径保存到我的表中的列中。我知道我可以在上面添加一个额外的UPDATE语句,以便在我加载它之后更新表中的每一列,但这看起来效率不高。
LOAD DATA INFILE命令是否支持将固定字符串与从文件读入的数据连接起来?
答案 0 :(得分:3)
TRUNCATE TABLE datamap;
LOAD DATA LOCAL INFILE 'datamap.txt'
INTO TABLE datamap
Fields terminated by ','
enclosed by '"'
escaped by '^'
Lines terminated by '\r\n'
(col1, col2, @my_variable)
SET col3 = CONCAT('x:\files\', @my_variable);
答案 1 :(得分:2)
http://dev.mysql.com/doc/refman/5.6/en/load-data.html
LOAD DATA [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE 'file_name' ... [(col_name_or_user_var,...)] [ SET col_name = expr,...]
处理输入行时,
LOAD DATA
将其拆分为字段,并根据列/变量列表和SET
子句使用这些值(如果存在)。然后将生成的行插入表中。