解决此问题的一种方法是在本地数据库上创建主表的物化视图,然后创建指向MV的完整性约束.
这样可行.但它可能会导致一些问题.首先,如果您需要完全刷新物化视图,则需要在执行之前禁用约束.否则,Oracle将无法在引入新行之前删除MV中的行.
其次,您可能会遇到一些时间延迟.例如,假设您将记录添加到远程站点上的主表.然后,您要将子记录添加到本地表.但是MV每天都会刷新,而且还没有发生.你会得到一个外键违规,只是因为MV没有刷新.
如果你走这条路,你最安全的方法是在提交主表时将MV设置为快速刷新.这意味着几乎所有时间都要保持DB Link的开放状态.如果您需要进行全面刷新,那么您将有管理工作要做.
总而言之,我们通常发现触发器更容易.在某些情况下,我们只是在逻辑模型中定义了FK,但是通过设置每日工作来手动实施,以检查违规情况并提醒员工.当然,我们非常小心,所以这些警报非常罕见.
归档时间: |
|
查看次数: |
6305 次 |
最近记录: |