我有许多不同的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文件生成临时表,然后将临时表转换为我所需的格式。但我不确定如何做到这一点,或者如果可能的话。
感谢您的时间,希望有人能够提供帮助或提供一些有关如何解决此问题的建议。
答案 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作为默认格式。