为了账号安全,请及时绑定邮箱和手机立即绑定

如何将CSV文件导入MySQL表

如何将CSV文件导入MySQL表

扬帆大鱼 2019-06-15 17:32:55
如何将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条记录。第一行包含列名。我认为它是逗号分隔的,文本显然是用双引号分隔的。最新情况:如有疑问,请阅读手册:http:/dev.mysql.com/doc/reflman/5.0/en/load-data.html我将一些信息添加到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记录,而且所有加载的数据似乎都在正确的位置。
查看完整描述

3 回答

?
拉丁的传说

TA贡献1789条经验 获得超8个赞

我导入了200多行的最简单方法是在phpmyadmin SQL窗口中的命令下面

我有一个简单的国家表,其中有两列-Country,Country Name

这是.csv数据

这是命令:

LOAD DATA INFILE 'c:/country.csv' INTO TABLE country 
FIELDS TERMINATED BY ',' ENCLOSED BY '"'LINES TERMINATED BY '\n'IGNORE 1 ROWS

记住一件事,永远不要出现在第二栏中,否则您的导入将停止。


查看完整回答
反对 回复 2019-06-15
  • 3 回答
  • 0 关注
  • 1076 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信