我有一个特别困难的任务,我想弄清楚,但似乎无法包裹我。我的任务是创建一个程序,将数据从CSV文件传输到数据库(mysql)。我已经研究并找到并理解了load data infile
这样做的方法,但是,每个CSV文件可能与我的数据库表不同,例如我表中的数据字段可能是Land Price, Parcel no, and Locaton
来保存简单。现在要上传的文件可能如下所示。
CSV文件示例:
示例CSV文件2:
正如您所看到的那样,pronlem位于csv文件2中,因为这些字段不仅乱序,而且字段的名称与我的表的字段不匹配。那么我该如何解决将CSV文件中的正确数据映射到数据库表中正确字段的问题呢?我只是在寻找想法和伪代码类型的答案。我最初的想法是,我必须为每个csv文件创建一个新表,但我不确定。
提前感谢您的帮助!
答案 0 :(得分:1)
如果你想谷歌,你正在处理的根本问题是数据转换。作为程序员,这是一项常见的任务。
有两种常规方法可以做到这一点: 1 - 您可以坚持使用loaddatainfile,为每个CSV创建一个新表,然后编写一个SQL语句来获取这些新行,并将它们放入现有表中(这就是变换的一部分)。您将加载数据然后使用INSERT。 。 。 SELECT语句类型。
2 - 第二种方法是编写自定义C#程序。有许多C#和CSV库可供使用,您将获得包含源CSV的所有部分的数组。从那里,您将制作使用与每个表字段对应的数组的CSV部分的SQL语句。