我有一个遵循这种模式的 CSV 文件:
cust_id,cust_name,cust_add_1,cust_add_2,cust_city,cust_state,cust_zip,cust_email
100024,BALE #DIANA & ROY,2944 SOME RD, ,AKRON,OH,44556,an@other.net
100139,SMITH #JOHN & LINDA,1569 ANOTHER WAY, ,SARASOTA,FL,65478,
100263,DOLE #BOB,5947 LONG RD, ,GRANITE FALLS,NC,12345,
.
.
. continued
该文件代表成千上万行数据,我试图将所有数据插入 MySQL 表中。我使用以下语句创建了相应的表:
CREATE TABLE customer (
cust_id INT(7) NOT NULL,
cust_name VARCHAR(40) NOT NULL,
cust_add_1 VARCHAR(50) NOT NULL,
cust_add_2 VARCHAR(50),
cust_city VARCHAR(20) NOT NULL,
cust_state CHAR(2) NOT NULL,
cust_zip INT(5) NOT NULL,
cust_email VARCHAR(60),
PRIMARY KEY (cust_id)
);
然后我在命令行上尝试了以下操作:
msyqlimport -u root --local csv_import ~/path/to/customer.csv
当我SELECT * FROM customer
在运行 mysqlimport 后尝试时,我得到了以下结果集:
+---------+-----------+------------+------------+-----------+------------+----------+------------+
| cust_id | cust_name | cust_add_1 | cust_add_2 | cust_city | cust_state | cust_zip | cust_email |
+---------+-----------+------------+------------+-----------+------------+----------+------------+
| 0 | | | NULL | | | | NULL |
+---------+-----------+------------+------------+-----------+------------+----------+------------+
1 row in set (0.00 sec)
我在将 CSV 数据导入 MySQL 方面不是很有经验,任何帮助将不胜感激。
更新
根据 ThisSuitIsBlackNot 的回答,我尝试了以下命令(顺便说一句,--local
需要该选项):
mysqlimport -u root --local --fields-terminated-by=',' --fields-optionally-enclosed-by='"' --lines-terminated-by='\n' csv_import ~/path/to/customer.csv
这产生了稍微好一点的结果,但不是我需要的,所以我这样尝试:
mysql> LOAD DATA LOCAL INFILE '~/path/to/customer.csv'
-> INTO TABLE customer
-> FIELDS TERMINATED BY ','
-> OPTIONALLY ENCLOSED BY '"'
-> LINES TERMINATED BY '\n';
在这两个之后,SELECT * FROM customer
产生了这个结果集:
+---------+-----------+------------+------------+-----------+------------+----------+-------------------+
| cust_id | cust_name | cust_add_1 | cust_add_2 | cust_city | cust_state | cust_zip | cust_email |
+---------+-----------+------------+------------+-----------+------------+----------+-------------------+
100024 |0 | cust_name | cust_add_1 | cust_add_2 | cust_city | cu | cust_ | cust_email
+---------+-----------+------------+------------+-----------+------------+----------+-------------------+
1 row in set (0.00 sec)
这显然不是我需要的,但它越来越接近了。