我想写一个关于构建表的日志系统。我希望如果有人想要更改构建表记录,则执行触发器。触发器任务写入building_log表,构建表中的哪一列想要更改。重要提示:此操作不会影响构建表。是否有可能,当有人想要更改建筑物表时,我会被告知,但建筑物表不会影响此操作。
答案 0 :(得分:0)
听起来你只是要求'触发':你可以阅读它们in the excellent Concepts guide。
但是Oracle有一个内置功能可以执行您想要的操作Flashback Data Archive - 如果您可以使用它,我建议您调查它。
---编辑:
好的,我想我误解了这个问题。您希望以静默方式阻止更新。暂且不论这是否是个好主意,对于before update
触发器,您可以使用原始:new
值覆盖:old
值。没有一种简单的方法可以用insert
做类似的事情,但我认为你没有要求这样做。
如果您确实需要以静默方式阻止插入,也许您可以考虑向用户而不是表格本身公开视图,并创建instead of
触发器