使用phpmyadmin导入sql文件asreplace

时间:2018-01-22 21:48:41

标签: mysql phpmyadmin

如何使用phpmyadmin导入SQL文件(是的,sql而不是csv),以便在导入时替换或更新数据? 我没有找到那个选项。我还创建了另一个临时数据库,我导入了有问题的sql文件(只有INSERT-lines,只有数据没有结构),然后去导出选择合适的选项,如INSERT ... SELECT ... ON DUPLICATE KEY UPDATE但是没有找到任何有助于这种情况的事情。

那我怎么能实现呢?如果不是phpMyAdmin,是否有一个程序可以转换"插入" sql文件到"更新重复",甚至从"插入"去"删除"之后我可以用原始文件重新导入?

我是如何做到这一点的,如果它有助于上述情况,或者有人对之前的步骤有更好的解决方案: 我有一个要导入的半大(1 GB)数据库文件,然后我将其分成多个较小的文件以导入它。其中一个是structuce sql-dump并休息数据。当仍然试图通过大文件,尝试通过htaccess或phpmyadmin导入选项调整超时设置没有帮助 - 总是得到超时。由于那些不起作用,我发现Janos Rusiczki(https://rusiczki.net/2007/01/24/sql-dump-file-splitter/)的一个程序将sql文件拆分成较小的程序(好的程序感谢Janos!)。它还将结构与数据分开。

然而,在完成8次成功导入后,我再次超时,因为phpmyadmin已经导入了部分文件。因此我最终陷入了现状。我知道,我总是可以删除所有并重新开始使用更小的部分文件,但是..我确信有更好的方法可以做到这一点。必须有一种方法可以在导入时替换文件,或者执行上述其他方式。

感谢您的帮助! :)

1 个答案:

答案 0 :(得分:0)

来自INSERT ... ON DUPLICATE KEY (do nothing),您可以使用正则表达式将每个INSERT放入sql文件中的INSERT IGNORE,它将传递已导入的所有条目。

请注意,它也会忽略其他错误,但在此上下文中似乎不会出现超时错误。