1

我正在尝试通过 shell 提示使用 mysql 加载。我想将 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 771XXXXXX,MUTOKO,24,MALE 771XXXXXX,MUTOKO,32,MALE 771XXXXXX,MUTOKO,37,Male 771XXXXXX,MUTOKO,36,MALE 771XXXXXX,MUTOKO,25,Male 771XXXXXX,HWEDZA,26,MALE 771XXXXXX,HWEDZA,33,MALE 771XXXXXX,MUTOKO,26,MALE 771XXXXXX,HWEDZA,34,MALE 771XXXXXX,HWEDZA,34,MALE 771XXXXXX,MUTOKO,21,MALE 771XXXXXX,MUTOKO,22,MALE 771XXXXXX,MUTOKO,30,MALE 771XXXXXX,MUTOKO,28,Male 771XXXXXX,MUTOKO,33,Male 771XXXXXX,MUTOKO,23,Male 771XXXXXX,ZVISHAVANE,31,Male 771XXXXXX,ZVISHAVANE,39,MALE

请帮忙,我做错了什么?

4

1 回答 1

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完全删除该子句。

于 2018-07-09T14:42:50.090 回答