第1行的错误1083(42000):使用mysql LOAD时,字段分隔符参数不是预期值

时间:2018-07-09 14:27:25

标签: mysql linux mysql-loadfile

我正在尝试通过shell提示符使用mysql load。我想直接将CSV文件加载到数据库中。

mysql -u root -p -h mysql -e "LOAD DATA INFILE 'Subscriber.csv' INTO TABLE temp_data FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n'IGNORE 1 ROWS" psi

我收到错误ERROR 1083 (42000) at line 1: Field separator argument is not what is expected

下面是我的CSV文件

misdn,city,age,gender 771001244,MUTOKO,24,MALE 771001286,MUTOKO,32,MALE 771001334,MUTOKO,37,Male 771001384,MUTOKO,36,MALE 771001399,MUTOKO,25,Male 771002873,HWEDZA,26,MALE 771006412,HWEDZA,33,MALE 771008125,MUTOKO,26,MALE 771008127,HWEDZA,34,MALE 771008142,HWEDZA,34,MALE 771013473,MUTOKO,21,MALE 771016262,MUTOKO,22,MALE 771016360,MUTOKO,30,MALE 771016701,MUTOKO,28,Male 771017619,MUTOKO,33,Male 771017822,MUTOKO,23,Male 771019268,ZVISHAVANE,31,Male 771024685,ZVISHAVANE,39,MALE

请帮助,我在做什么错了?

1 个答案:

答案 0 :(得分:3)

您使用了ENCLOSED BY '"',但是您的字段根本不包含双引号。我认为您应该使用OPTIONALLY ENCLOSED BY '"'。试试这个版本:

mysql -u root -p -h mysql -e "LOAD DATA INFILE 'Subscriber.csv'
    INTO TABLE temp_data
    FIELDS TERMINATED BY ','
    OPTIONALLY ENCLOSED BY '"'
    LINES TERMINATED BY '\n'IGNORE 1 ROWS" psi

或者,如果您确定没有字段将双引号引起来,则可以完全删除ENCLOSED BY子句。