触发器响应另一个触发器完成而被设置

时间:2013-10-09 19:30:01

标签: sql oracle triggers

我刚刚开始使用SQL,我无法找到任何地方如何创建一个触发器,以响应另一个触发器完成。有什么想法吗?

另外,有没有办法让AFTER语句中的CREATE TRIGGER表达式有多个子句?例如:

CREATE TRIGGER ExampleTrigger 
 AFTER UPDATE OF thing 
    ON SampleTable OR 
 AFTER UPDATE OF boat 
    ON Sample Table ...

1 个答案:

答案 0 :(得分:0)

请参阅此处的Oracle Docs以获取有关触发器的更多准确参考。

FYI,触发器是为数据库中的表上的特定DML事件执行的命令集。这隐含意味着您无法通过任何类型的命令显式执行触发器。调用触发器的唯一方法是执行重叠的DML语句。

接下来,仅在一个表上设置触发器。它可以设置为多个事件,例如INSERTUPDATE和/或DELETE,但触发器只会对一个表执行操作。您无法为多个表设置单个触发器。您可以为多个事件设置触发器。您可以这样指定:

CREATE TRIGGER myTrigger
AFTER INSERT OR UPDATE ON myTable
...

此处需要注意的另一件事是,如果您希望为多个表执行相同的代码,最佳做法是将其放在存储过程或包中,并从您想要的触发器访问该过程。