[英]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
,對此不確定)。
對於更大的值,最通用的數據類型必須是VARCHAR
或TEXT
,但是當在數字,日期等上使用時,您當然會失去語義。
我注意到您包括了phpmyadmin標簽。
PHPMyAdmin可以開箱即用。 它將“神奇地”決定構成每一列的類型,並為您CREATE
表,並INSERT
所有數據。 無需擔心LOAD DATA FROM INFILE
,盡管如果您想確切地了解正在發生的事情而無需依靠PHPMyAdmin的魔術工具,該方法可能會更安全。
嘗試convertcsvtomysql ,僅上傳您的csv文件,然后您可以下載和/或復制mysql語句以創建表並插入行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.