【问题标题】:Merge two MySql databases except duplicate PKs合并两个 MySql 数据库,除了重复的 PK
【发布时间】:2017-01-10 16:44:03
【问题描述】:

我有两个具有相同架构的数据库。例如database1和database2;现在我需要将它们结合起来。我试图遵循这些答案: Can I merge two databases into one in Mysql if they both have the same schema? 但我有一个这样的例外:ERROR 1062 (23000) at line 24: Duplicate entry '1' for key 'PRIMARY' 所以问题很简单:有没有办法合并两个数据库而忽略第二个数据库的 PK 重复?或者第二个数据库覆盖冲突记录的变体?两种变体都是可接受的。

补充说明: 谈到数据库,我的意思是数据库;我有两个数据库的 dupm 文件,我需要将这两个文件都部署到一个,将数据库与第一个和第二个的数据结合起来。如果某些数据会丢失 - 这不是问题。但我需要结合两个数据库的最大数据!不是表格

【问题讨论】:

  • 请提供样本数据和期望的结果。您对“merge”的含义不清楚。
  • 当你说“数据库”时,你真的是指表吗?
  • 主键是否只是 auto_increment ID,或者它们可以是包含真实信息(如用户名)的列?如果它们是真正的列,应如何解决重复项?
  • @Barmar 重复可以被忽略或覆盖。两种变体都可以

标签: mysql database merge


【解决方案1】:

mysqldump 使用--insert-ignore 选项。这将导致它将INSERT IGNORE 命令写入转储文件,而不是普通的INSERT 语句。这会导致插入时跳过重复的键,而不是导致错误。

【讨论】:

  • 它应该看起来像这样mysqldump -u root -p --insert-ignore --no-create-info database1 > database1.sql
  • 好像成功了!谢谢你。点为正确答案
猜你喜欢
  • 2010-11-08
  • 1970-01-01
  • 2011-11-18
  • 1970-01-01
  • 2011-11-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多