我处境艰难,正在寻求有关如何进行的建议。我必须将一些数据从一个环境导入到另一个环境。80% 的记录已被修改,所以计划是简单地删除所有现有记录,并导入新记录。
不幸的是,这是一个基表。其他几个表定义了FK,指向这个表。为了删除数据,我需要删除 FK 并在完成导入后重新创建它们,或者禁用约束并重新启用它们。
没有记录被删除。制作了 prod 的副本,开发人员调整了数据并添加了新记录。
你会采取哪种方法?
我处境艰难,正在寻求有关如何进行的建议。我必须将一些数据从一个环境导入到另一个环境。80% 的记录已被修改,所以计划是简单地删除所有现有记录,并导入新记录。
不幸的是,这是一个基表。其他几个表定义了FK,指向这个表。为了删除数据,我需要删除 FK 并在完成导入后重新创建它们,或者禁用约束并重新启用它们。
没有记录被删除。制作了 prod 的副本,开发人员调整了数据并添加了新记录。
你会采取哪种方法?
正如 Mikael Eriksson 所推荐的,我会在不删除/禁用外键的情况下进行导入。
这样做的缺点是,如果您想要删除其值被 FK 引用的任何记录,或者想要更新值以使原始值不再在表中并被 FK 引用。
在这些情况下,您需要跟踪任何此类问题并决定如何处理每个“冲突”(不要更新/删除、更改其他表中的数据或其他解决方案)。
与删除/禁用 FK、导入然后恢复 FK 相比,这将更快、更容易并确保数据完整性。