sql - 完成初始复制后刷新 Oracle 数据库表
问题描述
我有一个生产和开发数据库(当然在不同的系统上)。许多个月前,我将生产数据库复制到了开发系统中。我当时使用 exp/imp。从那时起,生产数据库中发生了很多变化,我想将其复制到开发数据库中。我宁愿不清除开发数据库并重新开始,因为我必须将数据添加到开发数据库中。
我最初的想法是使用 MERGE INTO 来复制新记录。但这显然需要我对表格执行此操作,并列出所有表格的所有字段。我们在这里谈论数百个表和数千个字段。不是一个很好的解决方案。
有没有更简单的方法?
解决方案
为什么不使用 impdp 的 TABLE_EXISTS 参数将新数据附加到现有表中?重复键将出错,但其余数据仍应导入。结果会有点乱。在运行 TRUNCATE 之前,您可以将整个生产表带到测试中的任何表。禁用 FK。导入后重新启用。- - 另一个选项创建一个数据库链接并在所有数据不在现有测试表中的表中生成 INSERT/SELECT。您可能还想在运行之前禁用 FK,并在完成后重新启用。
推荐阅读
- php - 如何使用 ImageMagick 在 PHP 中调整 Adobe Illustrator Artwork (AI) 文件的大小以增加尺寸而不损失质量?
- typescript - 如何使用 Typescript 在 vuejs 中创建功能组件
- c# - Blazor,ASP.NET Core 托管与 ASP.NET Core 中的服务器端
- ios - 如何更改 Mapbox 中除目的地以外的位置的标记?
- reactjs - 如何将旋转条传递给 ReactJS 中的另一个组件
- sql - 如何计算 varchar 字段中的每个字符?
- java - 获取选定的 LOV 值并在其他字段中显示相应的数据
- javascript - 如何使用 Plotly 在散点极坐标图中使用径向轴值创建圆形带
- android - 如何为 Kotlin-reflect 设置 proguard?
- android - 在运行时更改字体大小android