我遇到了一个问题,经过几个小时的研究,我只想死。
有没有一种方法可以将大量 CSV 数据导入到一个 MySQL 数据库中,同时使用 CSV 数据的文件名创建新表?
示例:如果我将 data1.csv
导入 db
,则该表应命名为 data1
,其中包含 data1 中的所有数据。 csv
。
感谢您的建议和解答。
最佳答案
没有内置的工具/方法/命令/查询来单独在 MySQL 中完成您想要的事情。
需要 2 部分。
第一。当然是在其中创建表的 MySQL 数据库。
第二。一些可以与您的数据库交互的第三方程序。例如。 (Java、JavaScript、Python,甚至 Unix shell 脚本)
以下是所需内容的 sudo 示例。
这个程序要做的事情相对简单。
它需要一些输入:
数据库 IP、用户名、密码(这些可以是传递到程序中的参数,或者为了测试简单而直接硬编码到程序中)
下一个输入将是您的文件名。数据1.csv
使用输入,程序将获取“data1”名称以及 data1.csv 文件的第一行来命名每列。
一旦程序收集到此信息,它就可以连接到数据库并运行CREATE TABLE TableName(RowName1 VARCHAR(255)、RowName2 VARCHAR(255)等...)的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'
希望这有助于澄清您的选择和方法。
关于mysql - 将大量 CSV 数据存入一个数据库中的新 MySQL 表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44138310/