的下面是我的表結構:秩序Oracle觸發器和語句的執行存儲過程
Table -Customer
CustomerID Blacklisted Customer Name
101 Y ABC
102 Y DEF
Table -Blacklist
CustomerID BlacklistID Customer Name
101 1011 ABC
102 1012 DEF
Table -Reason
BlacklistID ReasonID Reason Code
1012 02 Rcode2
主表「客戶」是用來存儲客戶information.There是對錶「客戶」,以更新後觸發如果有人在客戶表中將黑名單更新爲Y,則在表「黑名單」中插入記錄。 我們認爲客戶被列入黑名單,如果,
- 客戶表中列入黑名單的值爲'Y'和。
- 沒有出現客戶在黑名單和原因表中的記錄
現在,我的要求是從列入黑名單的backend.For客戶這個我寫下面的查詢存儲過程:
- 更新客戶set blacklisted ='Y'where customerid ='102';
- 從黑名單中選擇BlacklistID到var_id,其中customerid ='102';
- 插入原因(BlacklistID,ReasonID,ReasonCode)values(var_id,111,'RCODE1');
現在要在Reason表中插入條目(步驟-3),我需要BlacklistID這是一個外鍵,一旦客戶表上的觸發器被優先處理,我將得到BlacklistID的值。所以我的困惑是,可以我假設在'客戶'表的更新觸發器將始終得到執行之前,控制達到我的INSERT INTO原因(步驟3)陳述。請建議。
感謝您的回覆。 – user2548985
您*可以*指定觸發器的順序。請參閱手冊:http://docs.oracle.com/cd/E11882_01/appdev.112/e25519/create_trigger.htm#CJAEJAFB –
使用CREATE TRIGGER上的FOLLOWS語法可以保證觸發器執行順序從11.1開始。 http://docs.oracle.com/cd/B28359_01/appdev.111/b28370/create_trigger.htm –