我有一个包含以下字段的表:
Name (varchar)
Ranking (int)
Age (int)
Favourite Court (varchar)
和像这样的CSV文件
name;age;current_ranking;favourite_court
sample1;22;5;Hard
sample2;21;6;Clay
我尝试使用以下代码导入MySQL:LOAD DATA LOCAL INFILE 'c:/players.csv' INTO TABLE players FIELDS TERMINATED BY ';' LINES TERMINATED BY '\n';
或LOAD DATA LOCAL INFILE 'c:/players.csv' INTO TABLE players FIELDS TERMINATED BY ';' LINES TERMINATED BY '\n' (name,age,current_ranking,favourite_court);
,带或不带文件头(即名称;年龄...)。
它不起作用,字段搞砸了。为什么呢?
答案 0 :(得分:3)
您需要命名表中的列,而不是文件中的列:
LOAD DATA LOCAL INFILE 'c:/players.csv' INTO TABLE players
FIELDS TERMINATED BY ';'
IGNORE 1 LINES
(Name, Age, Ranking, `Favourite Court`)
另外,如LOAD DATA INFILE
Syntax所述:
注意
如果您在Windows系统上生成了文本文件,则可能必须使用
LINES TERMINATED BY '\r\n'
正确读取文件,因为Windows程序通常使用两个字符作为行终止符。某些程序(例如写字板)在编写文件时可能会使用\r
作为行终止符。要阅读此类文件,请使用LINES TERMINATED BY '\r'