在表上有兩個觸發器。當表格中的每一行都有插入或更新時,會執行一個觸發器。當表中的每一行有更新時執行第二個觸發器。當表中一行有更新語句時,哪個觸發器首先在ORACLE 10G中執行。在oracle中是否有觸發器的執行順序?如果是這樣,我該如何設置它?關於觸發序列
關於觸發序列
回答
在觸發器將觸發的是,你可以在10g中控制任意的,不是順序。我相信,從技術上講,它的順序是觸發器恰好被創建,但這絕對不是你想要指望的。
在11g中,您可以控制觸發器的觸發順序。不過,使用一個調用兩個存儲過程的觸發器替換兩個觸發器幾乎總是更好。因此,而不是
CREATE TRIGGER trg_1
BEFORE UPDATE ON t
FOR EACH ROW
BEGIN
<<do thing 1>>
END;
CREATE TRIGGER trg_2
BEFORE UPDATE ON t
FOR EACH ROW
BEGIN
<<do thing 2>>
END;
,你會用什麼來更好的服務像
CREATE PROCEDURE p1(<<arguments>>)
AS
BEGIN
<<do thing 1>>
END;
CREATE PROCEDURE p2(<<arguments>>)
AS
BEGIN
<<do thing 2>>
END;
CREATE TRIGGER trg
BEFORE UPDATE ON t
FOR EACH ROW
BEGIN
p1(<<list of arguments>>);
p2(<<list of arguments>>);
END;
無法觸發觸發的命令可以依賴於10g之前的正常語句之前,之前的行,之後的行,之後的語句順序。在11g中,CREATE TRIGGER statement增加了一個新的FOLLOWS子句。
非常感謝信息 – Arav
對於11g之前的版本,不,訂單未指定。從10g Release 2 docs:當一個以上的觸發是由一個單一發射
Oracle在有計劃的點火順序每種類型的觸發器:
對於啓用觸發器,Oracle將自動執行下列操作SQL語句。首先,觸發語句級觸發器,然後觸發行級觸發器。
Oracle針對不同類型的觸發器在設定的時間點執行完整性約束檢查,並確保觸發器不會損害完整性約束。
Oracle爲查詢和約束提供了讀一致視圖。
甲骨文管理所述觸發動作的代碼中引用觸發器和模式對象之間的依賴性
Oracle使用兩階段提交,如果一個觸發器中的分佈式數據庫更新遠程表。
如果給定語句存在多於一個相同類型的觸發器,Oracle會觸發未指定的隨機順序的多個觸發器;也就是說,相同語句的相同類型的觸發器不保證以任何特定順序觸發。
非常感謝信息 – Arav
在Oracle 10g中,我們不控制是在同一時刻所生成的觸發器。它是隨機執行的。所以我們不能說首先觸發哪個觸發器。爲了克服這個問題,Oracle 11g引入了FOLLOWS CLAUSE
。使用這個我們可以控制執行順序。
- 1. 關於MySQL的觸發
- 2. Salesforce觸發序列
- 3. 觸發事件處理程序關閉SharePoint列表列更改
- 4. Oracle觸發序列和lpad
- 5. Oracle序列觸發器
- 6. 關於SQL Server刪除觸發器
- 7. 關於觸發器的幫助
- 8. 關於keyup的jquery沒有觸發
- 9. 關於SQL觸發器的問題
- 10. 關於verilog觸發器延遲
- 11. 關於觸發器的查詢?
- 12. Salesforce中:觸發相關的列表上
- 13. INSERT觸發器用於更新列
- 14. 關於序列點和UB
- 15. GTM觸發基於
- 16. 觸發程序
- 17. Quartz調度管理:關於發揮失常觸發器
- 18. Azure WebJobs隊列觸發器不觸發
- 19. 觸發序列甲骨文問題
- 20. 觸發auto_increment甲骨文沒有序列
- 21. 創建Oracle序列觸發器
- 22. 在shell腳本中觸發UNIX序列
- 23. cassandra觸發器執行序列
- 24. 單點觸發序列化問題
- 25. 非主鍵POSTGRES序列觸發器
- 26. 序列和觸發器,PL/SQL
- 27. JSON.NET反序列化不觸發setter
- 28. VB.NET應用程序觸發關閉窗體關閉事件
- 29. WSO2 API Manager從輸出序列觸發故障序列
- 30. Informix「序列化」Oracle數據庫/序列/觸發器Pro * C
非常感謝信息 – Arav
和建議 – Arav