Oracle的示例"而不是"触发器

ber*_*tch 2 oracle plsql

有没有人有一个简单的例子来解释为什么人们想要使用Oracle 而不是触发器

Jus*_*ave 8

我见过几种不同的场景

1)您使用初始数据模型构建一个系统,并为要查询的应用程序提供一组视图,这些视图只是与表的1:1映射.将来,如果您决定需要更改数据模型并将一个表分成两个不同的表,则可以通过保持视图层不变来影响任何现有应用程序.但是为了使应用程序保持透明,您必须继续允许视图上的插入导致插入两个(或更多)不同的表,您需要一个INSTEAD OF触发器.

2)#1的变体,你的应用程序开始只是直接击中表.如果要在不影响现有应用程序的情况下重构表定义,则重命名表(T变为T_OLD),创建新表,并使用INSTEAD OF触发器创建名为T的视图.这具有相同的效果 - 它允许您更改表声明而无需更改应用程序.