csv文件导入mysql表_如何将CSV文件导入MySQL表

如何将CSV文件导入MySQL表

我有一个未规范化的事件-来自客户端的日记CSV,我试图将它加载到MySQL表中,以便将其重构为正常的格式。我创建了一个名为“CSVImport”的表,该表对CSV文件的每一列都有一个字段。CSV包含99列,因此这本身是一项相当艰巨的任务:CREATE TABLE 'CSVImport' (id INT);ALTER TABLE CSVImport ADD COLUMN Title VARCHAR(256);ALTER TABLE CSVImport ADD COLUMN Company VARCHAR(256)

;ALTER TABLE CSVImport ADD COLUMN NumTickets VARCHAR(256);...ALTER TABLE CSVImport Date49 ADD COLUMN Date49 VARCHAR(256);ALTER TABLE CSVIm

port Date50 ADD COLUMN Date50 VARCHAR(256);

表上没有约束,所有字段都保存VARCHAR(256)值,但包含计数(由int表示)、是/否(用位表示)、价格(用十进制表示)和文本缩略语(用文本表示)的列除外。

我试图将数据加载到文件中:LOAD DATA INFILE '/home/paul/clientdata.csv' INTO TABLE CSVImport;Query OK, 2023 rows affected, 65535 warnings (0.08 sec)Records: 2023

Deleted: 0  Skipped: 0  Warnings: 198256SELECT * FROM CSVImport;| NULL             | NULL        | NULL

| NULL | NULL               | ...

整张桌子都装满了NULL.

我认为问题在于,文本信息包含多行,MySQL正在解析文件,好像每一行新行都对应于一个数据库行一样。我可以毫无问题地将文件加载到OpenOffice中。

csv文件包含2593行和570条记录。第一行包含列名。我认为它是逗号分隔的,文本显然是用双引号分隔的。

最新情况:

我将一些信息添加到LOAD DATA声明OpenOffice足够聪明推断,现在它加载正确的记录数:LOAD DATA INFILE "/home/paul/clientdata.csv"INTO TABLE CSVImport

COLUMNS TERMINATED BY ','OPTIONALLY ENCLOSED BY '"'ESCAPED BY '"'LINES TERMINATED BY '\n'IGNORE 1 LINES;

但还是有很多完全NULL记录,而且所有加载的数据似乎都在正确的位置。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值