[英]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.