我从我在MySQL dbase上本地存储的数据库中通过PhpMyAdmin导出了一些条目,我想只替换我在线托管的目标数据库上的那些条目。不幸的是,当我尝试这样做时,PHPMyAdmin说这些帖子已经存在,因此他无法删除它们。
我需要花费大量时间在其余帖子中手动搜索这些条目并一次删除一条,因此我想知道是否有任何解决方法以便在导入时覆盖这些条目。
提前致谢!
答案 0 :(得分:3)
一个不错的选择是在从phpMyAdmin本地进行初始导出时处理此问题。从phpMyAdmin导出时:
导入您的生产数据库。 (始终备份备份生产数据库,以防万一)
我知道这是一篇老文章,但实际上它帮助我找到了phpMyAdmin中内置的解决方案。希望对别人有帮助!
答案 1 :(得分:2)
这是一种快速而肮脏的方法。其他人可能有更好的解决方案:
听起来你正在尝试运行INSERT查询,而phpMyAdmin告诉你它们已经存在。如果您使用UPDATE查询,则可以更新信息。
我会将您在那里的查询复制到文本编辑器中,最好是可以处理查找和替换的文本编辑器,如Notepad ++或Gedit,然后替换一些代码以将查询从INSERT更改为UPDATE。
请参阅:http://dev.mysql.com/doc/refman/5.0/en/update.html
或者,你可以删除它们,然后运行你的INSERT查询。
您可以使用find和replace的一些逻辑来创建一个首先删除它们的DELETE查询。
答案 2 :(得分:2)
结帐insert on duplicate。您可以将语法添加到本地存储的条目中,也可以导入临时数据库,然后运行INSERT ... SELECT ... ON DUPLICATE KEY UPDATE
。如果您可以发布架构,它将帮助我们更好地为您提供指导。