2012-11-15 145 views
-2

是否可以编写触发器来激活另一个触发器?或者我可以将2触发器放入1触发器中吗?使用触发器激活触发器

+0

的确是这样,但你应该尽量不要... –

+0

你的要求是什么? – user75ponic

+0

最好告诉我们你想达到什么目的,而不是问我们是否有可能。你已经提供了很少的细节,你的问题的答案是YES或NO或MAYBE,这取决于你的真实意思。请*编辑*您的问题,使其更有帮助。 – APC

回答

0

当适当的DML针对他们的表发布时触发器触发。没有调用触发器的概念。

如果你想分享整个事件的差异代码,这是很容易做到:

create or replace trigger ins_upd_emp 
before insert or update on emp 
for each row 
begin 
    -- do this only for new records 
    if inserting then 
      :new.id := emp_seq.nextval; 
    end if; 

    -- do this for all records 
    :new.last_activity_user := user; 
    :new.last_activity_date := sysdate; 
end; 

注意插入关键字如何对一个事件的分离活动。如果您想共享某些操作,但不是全部操作,请使用这些关键字。 Find out more

请记住,触发器使我们陷入可怕的混乱,正是因为他们的呼叫超出了我们的控制范围。只为最简单的操作使用触发器。建立复杂的逻辑为触发器,有许多原因是不好:

  1. 性能差多行语句
  2. 触发器是看不见的;开发人员在诊断问题时总会忘记检查它们
  3. 使触发器执行它们不应该导致可怕的错误的事情。
0

只需添加下面启用

ALTER TRIGGER TRIGGER_NAME ENABLE

或FOR禁用

ALTER TRIGGER TRIGGER_NAME DISABLE