将 csv 文件内容加载到 mysql 表中并进行验证
我想将一个大的 csv 文件(大约 12MO)导入到 mysql 表中,首先我尝试使用 LOAD DATA INFILE 它工作得很好,但就我而言,我想首先测试 csv 行以确定是否要更新数据或插入新记录 所以解决方案是读取文件并将每一行的内容与表中已有的数据进行比较,并做出正确的操作 这种方法也有效,但需要大量时间和资源,
现在我的问题是
1:我可以使用PHPMYADMIN(开源)的导入功能吗? 我的项目是商业的
2:如果可以,你知道一些关于这个的教程吗(任何想法)
3:如果不,我不能,是否有这样的用于导出/导入的商业框架,
谢谢
i want to import a large csv file (about 12MO) into mysql table , first i tried with LOAD DATA INFILE it work perfectly , but in my case i want firstly test the csv rows to determine if i want to update data or insert new records
so the solution is to read the file and compare the content of each row with the data already in the table , and make the right action
this methode also works but takes lot of time and resources
now my question is
1 : can i use the import functions of PHPMYADMIN ( open source )
and my project is comercial
2 : if yes i can , do you know some tutorials about this ( any idea )
3 : if no i can't , is there such commercial frameworks for exporting/importing
thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这实际上是非常常见的 SQL:您要么想要插入,要么想要更新,是吗?因此,您需要两个语句(一个用于更新,一个用于插入)以及一种判断是否应该插入的方法。您真正需要的是一个永远不会为单个记录重复的唯一键(可以是复合键)和两个语句,如下所示:
请注意,您可以在 WHERE 中使用一组 AND 值来使用复合键,并注意您没有更新复合键,但您可能正在插入复合键。这应该很好地帮助您开始。在要求澄清之前,请用实际代码更新您的问题。
This is actually pretty common SQL: you either want to insert or update, yes? So you need two statements (one for update, one for insert) and a way to tell if it should be inserted. What you really need is a unique key that will never be duplicated for the individual record (can be a composite key) and two statements, like this:
Note that you can use composite keys using a set of ANDed values in the WHERE, and note that you're not updating the composite keys but you are probably inserting the composite keys. This should be good to get you a start. Before you ask for clarification update your question with actual code.
MySQL有特定的插入语法来处理重复行。
MySQL has specific insert syntax to deal with duplicate rows.