gpt4 book ai didi

sql - 合并数据库如何处理重复的 PK

转载 作者:太空狗 更新时间:2023-10-30 01:47:31 25 4
gpt4 key购买 nike

我们有三个按区域物理分隔的数据库,一个在洛杉矶、旧金山和纽约。所有数据库共享相同的架构,但包含特定于其区域的数据。我们正在寻求将这些数据库合并为一个并对其进行镜像。我们需要保留每个区域的数据,但将它们合并到一个数据库中。这给我们带来了很多问题,例如我们肯定会有重复的主键,并且外键可能无效。

我希望找到有过此类任务经验的人,他们可以就如何完成合并提供一些技巧、策略和经验。

例如,一个想法是创建复合键,然后更改我们的代码和存储过程以通过复合键(区域/原始 pk)查找数据。但这需要我们更改所有代码和存储过程。

另一个想法是只导入数据并让它生成新的 PK,然后将所有 FK 引用更新为新的 PK。这样我们可能不必更改任何代码。

欢迎任何经验!

最佳答案

我没有这方面的第一手经验,但在我看来,您应该能够为每台服务器唯一地映射 PK -> 新 PK。例如,生成新的 PK,使来自 LA 服务器的数据具有 PK % 3 == 2,SF 具有 PK % 3 == 1,而 NY 具有 PK % 3 == 0。而且,据我了解你的问题,每个服务器只存储 FK 关系到它自己的数据,您可以用相同的方式更新 FK。

NewLA = OldLA*3-1
NewSF = OldLA*3-2
NewNY = OldLA*3

然后您可以合并这些并且没有重复的 PK。正如您已经说过的,这本质上只是生成新的 PK,但是以这种方式构建它可以让您轻松更新 FK(假设,就像我所做的那样,每个服务器上的数据都是独立的)。祝你好运。

关于sql - 合并数据库如何处理重复的 PK,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1094144/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com