我有一个生产和开发数据库(当然在不同的系统上)。许多个月前,我将生产数据库复制到了开发系统。我当时使用了exp / imp。从那时起,我想将生产数据库中的很多更改复制到开发数据库中。我不想消灭开发数据库并重新开始,因为我不得不将数据添加到开发数据库中。
我最初的想法是使用MERGE INTO复制新记录。但这显然要求我对表执行此操作,并列出所有表的所有字段。我们在这里谈论数百个表格和数千个字段。不是一个很好的解决方案。
有没有更简单的方法?
答案 0 :(得分:0)
为什么不使用impdp的TABLE_EXISTS参数将新数据附加到现有表中?重复键将出错,但其余数据仍应导入。结果会有些混乱。在运行TRUNCATE之前,您可以将整个生产表带入测试中的任何表。禁用FK。导入后重新启用。 -- 另一种选择是创建数据库链接,并在所有表都不在现有测试表中的情况下向所有表中生成INSERT / SELECT。您可能还想在运行之前禁用FK,并在完成后重新启用。