从不一致的csv文件生成数据库

时间:2011-06-25 00:28:31

标签: mysql sql csv

我有许多不同的csv文件,我想将其转换为数据库表。

csv文件并不总是一致的,这意味着列可能不会始终位于同一位置。例如:

--First scenario--
col1, col2, col3, col4, col5
1,2,3,4,5

--second scenario--
col3,col4,col1,col5,col2
3,4,1,5,2

- 场景是无穷无尽的,无法预测列的顺序 -

信息相同,但数据在csv文件中的放置顺序是不同的。我需要能够生成与csv文件一致的数据库表,这样无论列的顺序如何,创建表时它总是采用一种格式。

我以为我可以从csv文件生成临时表,然后将临时表转换为我所需的格式。但我不确定如何做到这一点,或者如果可能的话。

感谢您的时间,希望有人能够提供帮助或提供一些有关如何解决此问题的建议。

2 个答案:

答案 0 :(得分:0)

听起来你面前有一些非常繁琐的工作。

您可以通过先在Excel中打开文件,重新排列列然后重新保存为CSV来加快清理速度。

答案 1 :(得分:0)

如果您可以使用第一行来确定如何以编程方式对列进行排序,那么您将处于良好状态。我认为在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

可能需要FIELDS TERMINATED BY ','从TSV更改为CSV作为默认格式。