如何解决从不一致的csv文件生成数据库
| 我想将许多不同的csv文件转换成数据库表。 csv文件并不总是一致的,这意味着列可能不会一直都在同一位置。例如:--First scenario--
col1,col2,col3,col4,col5
1,2,3,4,5
--second scenario--
col3,col1,col5,col2
3,1,5,2
-场景无穷无尽,无法预测列的顺序-
信息相同,但是数据在csv文件中的放置顺序不同。我需要能够从csv文件生成一致的数据库表,以便无论列按什么顺序排列,在创建表时,它始终是一种格式。
我当时想我可以从csv文件生成一个临时表,然后将该临时表转换为所需的格式。但是我不确定如何执行此操作,或者是否可行。
感谢您的宝贵时间,希望有人能够为您解决该问题或提供一些建议。
解决方法
如果您可以使用第一行来确定如何以编程方式确定列的顺序,那么您将处于良好状态。我认为没有自动或直接在MySQL中执行此操作的好方法。其次,您可以在不重新排列数据的情况下加载数据,只需在SQL中设置列名称即可:
LOAD DATA INFILE \'file.txt\' INTO TABLE table (col3,col1,col2,col4)
http://dev.mysql.com/doc/refman/5.1/en/load-data.html
可能需要ѭ2才能将TSV更改为CSV作为默认格式。
, 听起来您面前有些繁琐的工作。
通过首先在Excel中打开文件,重新排列列,然后重新另存为CSV,您也许可以加快清理速度。