大量 CSV 数据到一个数据库中的新 MySQL 表中

Posted

技术标签:

【中文标题】大量 CSV 数据到一个数据库中的新 MySQL 表中【英文标题】:tons of CSV data into new MySQL Tables in one Database 【发布时间】:2017-10-23 14:43:09 【问题描述】:

我遇到了一个问题,经过几个小时的研究,我只想死。

有没有办法将大量 CSV 数据导入到一个 mysql 数据库中,但使用 CSV 数据的文件名创建新表?

示例:如果我将data1.csv 导入db,则该表应命名为data1,其中包含来自data1.csv 的所有数据。

感谢您的建议和回答。

【问题讨论】:

dev.mysql.com/doc/workbench/en/… 这看起来好像覆盖了它...***.com/questions/9998596/…。特别是。 csvkit 似乎可以做到。 @Idgorman 在 MySQL-Workbench 中一次只能导入一个以上的 CSV 数据是不可能的 【参考方案1】:

没有内置的工具/方法/命令/查询可以单独在 MySQL 中完成您想要的。

需要的是 2 个部分。

第一。当然是你的 MySQL 数据库,将在其中创建表。

第二。一些可以与您的数据库交互的第三方程序。例如。 (Java、javascript、Python,甚至 Unix shell 脚本)

以下是所需内容的 sudo 示例。

这个程序要做的事情相对简单。

这将需要几个输入: 数据库 IP、用户名、密码(这些可以是传递到程序中的参数,或者为了简化测试直接硬编码到程序中

下一个输入将是您的文件名。数据1.csv

使用输入,程序将获取“data1”名称以及 data1.csv 文件的第一行来命名每一列。

一旦程序收集到这些信息,它就可以连接到数据库并为CREATE TABLE TableName (RowName1 VARCHAR(255), RowName2 VARCHAR(255), ect...)运行 MySQL 语句

最后它可以执行一个 MySQL 命令将他的 *.csv 文件导入到新创建的表中。例如。

LOAD DATA LOCAL INFILE 'C:/Stuff/csvFiles/Data1.csv' 
INTO TABLE `SchemaName`.`Data1` 
FIELDS TERMINATED BY ',' 
OPTIONALLY ENCLOSED BY '"' 
LINES TERMINATED BY '\r\n'

希望这有助于您稍微了解一下方法。

【讨论】:

以上是关于大量 CSV 数据到一个数据库中的新 MySQL 表中的主要内容,如果未能解决你的问题,请参考以下文章

使用 pandas(和 glob?)合并目录中的大量(csv)数据文本文件

如何将csv导入mysql和mysql导出csv

将列中的大量地址(10000)信息列表转置到 csv 中,然后在 mysql 中上传

需要将大量 csv 文件插入数据库

如何把csv文件批量导入到mysql数据库

CSV 到 MySQL 的转换和导入