这两个数据库拥有相同的模式,但是具有不同的数据。可能会出现一些行的重复,但如果发现重复,则合并应该失败而不进行更新,即重复记录应手动解决。
问题的一部分在于这些数据库中存在许多外键约束。此外,可能会有一些列引用了实际上没有外键约束的外键。后者是由于插入性能问题造成的。同时,我们需要能够将旧数据库的ID映射到新数据库中的ID。
显然,我们可以编写大量代码来处理此问题,但我们正在寻找一个解决方案,它具有以下特点:
更新:我忽略了一个明显的事实,那就是“重复”是由模式中的唯一约束明确定义的。我们预计首先恢复一个数据库的内容,然后再恢复第二个数据库的内容。在第二个恢复过程中出现的错误应被视为对第二个恢复过程致命的错误。接下来应该从第二个数据库中删除重复记录并创建新的导出文件。我们希望对ID进行重新编号,但不更改其他唯一约束。另外,可能还会有第三个甚至第四个需要合并的数据库。
问题的一部分在于这些数据库中存在许多外键约束。此外,可能会有一些列引用了实际上没有外键约束的外键。后者是由于插入性能问题造成的。同时,我们需要能够将旧数据库的ID映射到新数据库中的ID。
显然,我们可以编写大量代码来处理此问题,但我们正在寻找一个解决方案,它具有以下特点:
- 工作量较小
- 对合并机器的负载较低
- 更可靠。如果我们必须编写代码,它将需要经过测试等流程,并不能保证没有错误
更新:我忽略了一个明显的事实,那就是“重复”是由模式中的唯一约束明确定义的。我们预计首先恢复一个数据库的内容,然后再恢复第二个数据库的内容。在第二个恢复过程中出现的错误应被视为对第二个恢复过程致命的错误。接下来应该从第二个数据库中删除重复记录并创建新的导出文件。我们希望对ID进行重新编号,但不更改其他唯一约束。另外,可能还会有第三个甚至第四个需要合并的数据库。