我们即将进行并行测试,以将旧系统与新的闪亮版本进行比较。我们有一个 Oracle 数据库表 A,它存储旧系统的数据,以及一个等效的表 B,它存储新系统的数据,因此在测试期间,数据库是非规范化的。(此外,遗留系统和表 A 是固定的 - 不允许更改)
我想要做的是允许 A 上不常见的 DML 操作传播到 B,反之亦然。我开始使用一对触发器来执行此操作,但遇到了一个明显的问题,即当触发器运行时,表正在发生变化,并引发异常。
有处理这个问题的标准方法吗?我已经阅读了关于是否使用 dbms_scheduler 的不同报告...
谢谢,
安迪
更新: 我最终退出了整个问题,并确保所有更新 A 的存储过程也更新 B,反之亦然。
我已将 Quassnoi 的答案标记为已接受,因为如果将来遇到同样的问题,我会遵循他的建议。
我已经标记了 JosephStyon 的答案,因为我通过在表 A 和 B 上添加两个插入/更新语句级触发器来简单地工作,然后使用 A 或 B 作为主表执行合并过程,具体取决于运行的触发器(尽管首先我检查了目标表是否会被合并更改,如果没有则提前退出)。