操作是执行的触发器想要回滚

时间:2012-12-07 14:11:02

标签: sql triggers oracle11g

我想写一个关于构建表的日志系统。我希望如果有人想要更改构建表记录,则执行触发器。触发器任务写入building_log表,构建表中的哪一列想要更改。重要提示:此操作不会影响构建表。是否有可能,当有人想要更改建筑物表时,我会被告知,但建筑物表不会影响此操作。

1 个答案:

答案 0 :(得分:0)

听起来你只是要求'触发':你可以阅读它们in the excellent Concepts guide

但是Oracle有一个内置功能可以执行您想要的操作Flashback Data Archive - 如果您可以使用它,我建议您调查它。

---编辑:

好的,我想我误解了这个问题。您希望以静默方式阻止更新。暂且不论这是否是个好主意,对于before update触发器,您可以使用原始:new值覆盖:old值。没有一种简单的方法可以用insert做类似的事情,但我认为你没有要求这样做。

如果您确实需要以静默方式阻止插入,也许您可​​以考虑向用户而不是表格本身公开视图,并创建instead of触发器