我正在尝试使用下面的代码使用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"
对我可能做错的任何建议?谢谢!
2 回答
CSV中的列名称不是必需的,因此您应该添加
IGNORE 1 LINES
子句 .查询
(recloc,client_acc)
中的列需要匹配表中的列 . CSV中的第一列将插入recloc
,第二列将插入client_acc
.如果您没有在语句中指定AUTO_INCREMENT列,但表中有一个,则应自动填充 .
excel到mysql数据导入的简短而甜蜜的解决方案:
适用于txt文件格式 . 详细地:
text.txt文件<< ==这个文本文件第一行表列名:
请忽略下一行语句在wamp中的SQL查询
为了成功运行此commnad,我们分别创建了文件夹 .
真实的是
C:\ wamp \ mysql \ data \ wamp \ www \ touch \ text.txt << == pysical文件路径是 .
但我们提到c:/wamp/touch/text.txt