2017-05-23 84 views
0

我遇到了問題,經過幾個小時的研究,我只想死。在一個數據庫中將大量CSV數據導入新的MySQL表中

有沒有辦法將大量CSV數據導入到一個MySQL數據庫中,但是使用CSV數據的文件名創建新表?

示例:如果我將data1.csv導入到db中,該表應該命名爲data1,其中所有數據來自data1.csv

感謝您的建議和解答。

+0

https://dev.mysql.com/doc/workbench/en/wb-admin-export-import-table.html – ldgorman

+0

這看起來好像它涵蓋了它... https://stackoverflow.com/questions/9998596 /創建MySQL的表-直接從 - 使用最CSV-存儲引擎CSV-文件。 ESP。 csvkit似乎能夠做到這一點。 –

+0

@Idgorman在MySQL-Workbench中一次只能導入一個CSV數據是不可能的 – ThaFlaxx

回答

1

沒有內置的工具/方法/命令/查詢來完成您希望在MySQL內部單獨完成的任務。

需要的是2部分。

1st。當然你的MySQL DB將創建表。

2nd。一些可以與你的數據庫交互的第三方程序。例如。 (Java,JavaScript,Python,甚至是Unix shell腳本)

以下是sudo需要的示例。

這個程序將要做的事情是相對簡單的。

這將需要幾個輸入:
數據庫的IP,用戶名,密碼(可以將這些參數傳遞到你的程序,或者用於測試硬直接編碼到程序簡單)

下一個輸入將是你的文件名。 data1.csv

使用輸入,程序將收集'data1'名稱以及data1.csv文件的第一行,以命名每列。

一旦程序收集這些信息,它可以連接到數據庫,並運行MySQL語句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' 

希望這有助於明確你的選擇一種方法。