将数据从CSV加载到MySQL

时间:2014-06-16 11:06:55

标签: mysql

我试图使用linux中的以下命令从csv文件插入mysql表:

LOAD DATA LOCAL INFILE  '\/home\/abc\/mapping.csv' INTO TABLE db1.ackno_rollno_mapping FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n';

csv文件就像:

166 D/O-5
208 W/O-8
230 
231 
236 W/O-9
245 W/O-10
8604    P/O-142
8623    W/O-730
8629    W/O-731

表结构是:

mysql> desc db1.ackno_rollno_mapping;
+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| ackNo  | varchar(45) | NO   | PRI | NULL    |       |
| rollNo | varchar(45) | YES  |     | NULL    |       |
+--------+-------------+------+-----+---------+-------+
2 rows in set (0.00 sec)

插入记录,但缺少ackNo和rollNo的某些部分。

像:

| 58  | W/O-728
  | 67  | W/O-729
  | 04  | P/O-142
  | 23  | W/O-730
  | 29  | W/O-731

我尝试将ackNo的数据类型从varchar(45)更改为整数,但仍然是同样的问题......

我错过了什么吗?

先谢谢

-------- --------- EDIT

我的csv文件就像:

 13,W/O-1
14,W/O-2
20,P/O-1
60,D/O-1
61,W/O-3
62,W/O-4

我也尝试了以下查询(删除ENCLOSED BY '"'

LOAD DATA LOCAL INFILE  '\/home\/abc\/ackno_rollno_mapping.csv' INTO TABLE db1.ackno_rollno_mapping FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n';

但问题仍然存在。我注意到表中删除了ackNo的第一个数字。

mysql> select * from db1.ackno_rollno_mapping;
+-------+-----------+
| ackNo | rollNo    |
+-------+-----------+
    | 3 | W/O-1
    | 4 | W/O-2
    | 0 | P/O-1
    | 0 | D/O-1
    | 1 | W/O-3
    | 2 | W/O-4

请建议。

由于

0 个答案:

没有答案