首页 > 解决方案 > 完成初始复制后刷新 Oracle 数据库表

问题描述

我有一个生产和开发数据库(当然在不同的系统上)。许多个月前,我将生产数据库复制到了开发系统中。我当时使用 exp/imp。从那时起,生产数据库中发生了很多变化,我想将其复制到开发数据库中。我宁愿不清除开发数据库并重新开始,因为我必须将数据添加到开发数据库中。

我最初的想法是使用 MERGE INTO 来复制新记录。但这显然需要我对表格执行此操作,并列出所有表格的所有字段。我们在这里谈论数百个表和数千个字段。不是一个很好的解决方案。

有没有更简单的方法?

标签: sqldatabaseoracleoracle11g

解决方案


为什么不使用 impdp 的 TABLE_EXISTS 参数将新数据附加到现有表中?重复键将出错,但其余数据仍应导入。结果会有点乱。在运行 TRUNCATE 之前,您可以将整个生产表带到测试中的任何表。禁用 FK。导入后重新启用。- - 另一个选项创建一个数据库链接并在所有数据不在现有测试表中的表中生成 INSERT/SELECT。您可能还想在运行之前禁用 FK,并在完成后重新启用。


推荐阅读