6

我通过 PhpMyAdmin 从本地存储在我的 MySQL 数据库中的数据库中导出了几个条目,我只想替换在线托管的目标数据库中的那些条目。不幸的是,当我尝试这样做时,PHPMyAdmin 说这些帖子已经存在,因此他无法删除它们。

在其余帖子中手动搜索这些条目并一次删除它们将花费我很多时间,所以我想知道是否有任何解决方法可以在导入时覆盖这些条目。

提前致谢!

4

3 回答 3

8

一个很好的选择是在本地从 phpMyAdmin 初始导出时处理此问题。从 phpMyAdmin 导出时:

  1. 导出方式:自定义
  2. 格式:SQL
  3. 格式特定选项 - 选择“数据”(而不是“结构”或“结构和数据”)
  4. 在数据创建选项 - 转储数据时使用的功能:将“插入”切换为“更新”<--这是票!
  5. 点击去!

导入您的生产数据库。(始终事先备份您的生产数据库以防万一)

我知道这是一篇旧帖子,但它实际上帮助我找到了 phpMyAdmin 内置的解决方案。希望它可以帮助别人!

于 2019-10-11T18:14:25.190 回答
5

这是一种快速而肮脏的方法。其他人可能有更好的解决方案:

听起来您正在尝试运行 INSERT 查询,而 phpMyAdmin 告诉您它们已经存在。如果您使用 UPDATE 查询,则可以更新信息。

我会将那里的查询复制到文本编辑器中,最好是可以处理查找和替换的文本编辑器,例如 Notepad++ 或 Gedit,然后替换一些代码以将查询从 INSERT 更改为 UPDATE。

见: http ://dev.mysql.com/doc/refman/5.0/en/update.html

或者,您可以删除它们,然后运行您的 INSERT 查询。

您可能可以使用一些逻辑与查找和替换来进行删除查询,首先摆脱它们。

http://dev.mysql.com/doc/refman/5.0/en/delete.html

于 2012-08-30T16:39:28.453 回答
2

签出insert on duplicate。您可以将语法添加到本地存储的条目中,或者导入到临时数据库中,然后运行INSERT ... SELECT ... ON DUPLICATE KEY UPDATE​​. 如果您可以发布架构,它将帮助我们更好地指导您。

于 2012-08-30T19:17:16.103 回答