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