我有一個table A
插入數據。然後一些計算正在更新相同的table A
。如何在完成數據插入表後觸發觸發器
我想觸發一個觸發器,在完成數據插入(插入和更新後)後調用Procedure A
。
我該怎麼做?
是否有任何其他方式自動執行此操作?或者我必須在table A
完成數據插入後手動運行Procedure A
。
更簡單地說,我想知道如何在插入幾行和一個提交後觸發觸發器,即不是針對每一行。
我有一個table A
插入數據。然後一些計算正在更新相同的table A
。如何在完成數據插入表後觸發觸發器
我想觸發一個觸發器,在完成數據插入(插入和更新後)後調用Procedure A
。
我該怎麼做?
是否有任何其他方式自動執行此操作?或者我必須在table A
完成數據插入後手動運行Procedure A
。
更簡單地說,我想知道如何在插入幾行和一個提交後觸發觸發器,即不是針對每一行。
您可以爲每行或每個語句(FOR EACH ROW選項)定義要觸發的觸發器。
如果我理解你是對的,你想在一堆陳述後觸發觸發器?不要以爲你可以。即使你可以,我寧願不這樣做。它們會分散您的程序流程/邏輯,並且會讓您很難了解您的軟件如何工作。
問候
我認爲你是對的...我在網上也找到任何東西也.. 將嘗試任何其他選項..反正謝謝... – Avi 2011-12-30 09:04:21
如果我正確理解你的問題,你想觸發器觸發您完成您的交易由幾個插入/更新語句後?如果是這種情況,我認爲您應該考慮在插入/更新操作完成後立即在您的程序流程中調用您的Procedure A
。
換句話說:觸發器只會有用,如果它應該被調用每行或每個語句。
在表中添加一列:例如「FINAL_ACTION」。保持這個列不變,直到您預期的最終行動。然後讓你的觸發器只被解僱:
REFERENCING NEW AS NEWREC OLD AS OLDREC
FOR EACH ROW
WHEN (NEWREC.FINAL_ACTION <> OLDREC.FINAL_ACTION)
DECLARE
--YOUR DECLARATIONS
BEGIN
--DO SOMETHING
END;
爲什麼更新後的觸發器不能幫助你? (不是每個;一個語句觸發器) – 2011-12-30 09:20:26