繁体   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