2012-11-15 184 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