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

本文介绍了如何在Linux环境下将CSV文件导入到MySQL数据库的表中。作者创建了一个名为'CSVImport'的表,并逐列添加了与CSV文件对应的字段。在尝试使用LOAD DATA INFILE命令导入数据时遇到问题,数据全部显示为NULL。通过调整LOAD DATA语句,包括指定列分隔符、引用字符和行终止符,解决了部分问题,但仍存在NULL记录。
摘要由CSDN通过智能技术生成

如何将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记录,而且所有加载的数据似乎都在正确的位置。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值