我正在尝试通过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
请帮助,我在做什么错了?
答案 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
子句。