簡體   English   中英

將CSV文件導入到mysql中。 (特別是關於create table命令)

[英]Importing a CSV file into mysql. (Specifically about create table command)

我的文本文件充滿了這樣的值:

第一行是這樣的列名列表:

col_name_1, col_name_2, col_name_3 ......(600 columns)

並且以下所有列均具有如下值:

1101,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1101,1,3.86,65,0.46418,65,0.57151...

將其導入mysql的最佳方法是什么?

具體來說,如何提出適當的CREATE TABLE命令,以便數據能夠正確加載自身? 什么是最好的通用數據類型,它將采用所有上述值,例如1101或3.86或0.57151。 我不擔心該表在存儲方面效率低下,因為我需要一次使用它。

我已經嘗試了其他相關問題的一些建議,例如使用Phpmyadmin(由於大量數據,我認為它崩潰了)

請幫忙!

CSV文件中的數據未規范化; 那600列可能分布在幾個相關的表中。 這是處理這些數據的推薦方法。 然后,您可以使用fgetcsv()在PHP中逐行讀取CSV文件。

為了使MySQL處理CSV,您可以創建一個600列表(我認為)並發出LOAD DATA LOCAL INFILE語句(或者也許使用mysqlimport ,對此不確定)。

對於更大的值,最通用的數據類型必須是VARCHARTEXT ,但是當在數字,日期等上使用時,您當然會失去語義。

我注意到您包括了phpmyadmin標簽。

PHPMyAdmin可以開箱即用。 它將“神奇地”決定構成每一列的類型,並為您CREATE表,並INSERT所有數據。 無需擔心LOAD DATA FROM INFILE ,盡管如果您想確切地了解正在發生的事情而無需依靠PHPMyAdmin的魔術工具,該方法可能會更安全。

嘗試convertcsvtomysql ,僅上傳您的csv文件,然后您可以下載和/或復制mysql語句以創建表並插入行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM