我正在尝试使用以下代码使用LOAD DATA LOCAL INFILE将数据加载到mysql表中。
MySQL的:
LOAD DATA INFILE '/var/www/vhosts/domain.com/httpdocs/test1.csv' INTO TABLE temp_table FIELDS TERMINATED BY ',' ENCLOSED BY '\"' LINES TERMINATED BY '\r\n' IGNORE 1 LINES (recloc,client_acc)
编辑:将LOAD DATA LOCAL INFILE更改为LOADA DATA INFILE,删除了SET id = null,添加了IGNORE 1 LINES
我没有错误,也没有导入的记录。我相信这个问题与列名相关,但我很难完全理解这些名称应该是什么。它们应该是CSV中的实际列名吗?或DB表中的字段名称?我还希望有一个auto_incremented主键(id)。
CSV:
recloc,client_acc
"NLGSX3","CORPORATE"
"7SC3BA","QUALITY ASSURANCE"
"3B9OHF","90717-6710"
对我可能做错的任何建议?谢谢!
答案 0 :(得分:2)
CSV中的列名称不是必需的,因此您应添加IGNORE 1 LINES
子句。
查询(recloc,client_acc)
中的列需要匹配表中的列。
CSV中的第一列将插入recloc
,第二列将插入client_acc
。
如果你没有在语句中指定AUTO_INCREMENT列,但表中有一个,它应该自动填充。
答案 1 :(得分:0)
excel到mysql数据导入的简短而甜蜜的解决方案:
适用于txt文件格式。 详情:
tbl name=t1
feilds are= name varchar,email varchar;
text.txt文件<< ==此文本文件第一行表列名:
name, email
"n1", "e1" next line
"n2", "e2" next line
"n3", "e3" next line
"n4", "e4" next line
"n5", "e5" next line
"n6", "e6" next line
"n7", "e7" next line
请忽略下一行语句 wamp中的SQL查询
LOAD DATA INFILE 'c:/wamp/www/touch/text.txt' INTO TABLE t1 FIELDS TERMINATED BY ',' ENCLOSED BY '\"' LINES TERMINATED BY '\r\n' IGNORE 1 LINES(name,email)
为了成功运行此commnad,我们已分别创建文件夹。
真正的是
C:\ wamp \ mysql \ data \ wamp \ www \ touch \ text.txt<< == pysical文件路径为。
但我们提到c:/wamp/touch/text.txt