0
A
回答
0
大多數DDL語句不允許在觸發器中使用,因爲它們強制執行COMMIT。此規則的少數例外情況僅適用於系統事件觸發器(啓動,關閉等),但未出現此觸發器是系統觸發器。參考here。
分享和享受。
0
建議不要在觸發器內使用DDL命令,因爲提交事務並且如果出現錯誤,您無法回滾事務。如果它非常重要,你必須這樣做,那麼只有你應該在觸發器內執行DDL命令。也許你可以使用自主事務來實現它。
下面是一個例子=
CREATE OR REPLACE TRIGGER my_trigger
AFTER INSERT ON my_table
DECLARE
PRAGMA AUTONOMOUS_TRANSACTION;
BEGIN
EXECUTE IMMEDIATE 'GRANT someRole TO someUser';
COMMIT;
END;
請讓我知道這是否爲你的作品。
感謝, 阿迪亞
相關問題
- 1. 在觸發器內部記錄
- 2. 在mysql觸發器內調用程序
- 3. 在觸發器內使用連接,MySQL
- 4. 在觸發器內循環所有列
- 5. 訪問觸發器體內的觸發器表
- 6. mysqldump轉儲完整模式所需的最小GRANT? (觸發器是缺少!!)
- 7. 觸發器觸發器
- 8. 在觸發器
- 9. 在觸發另一個觸發器後啓用觸發器
- 10. jQuery Mobile data-role =「header」點擊事件未觸發
- 11. 你可以在觸發器內禁用觸發器嗎? SQL Server 2008
- 12. 觸發器在操作中未觸發
- 13. ondragstart在觸發器中不觸發
- 14. 如何在月底觸發觸發器?
- 15. 在期間觸發器觸發
- 16. 「GRANT ALL TO作用」
- 17. 觸發內ngTransclude
- 18. 內觸發
- 19. 觸發器在Oracle
- 20. SQL觸發器在@
- 21. 使用觸發器觸發
- 22. 觸發器沒有觸發
- 23. 觸發器沒有觸發
- 24. SQL Server:觸發器觸發
- 25. SQLite觸發器(不觸發)
- 26. msmq觸發器未觸發
- 27. Oracle合併內觸發使用表觸發器是
- 28. mysql觸發器到oracle觸發器
- 29. 使用觸發器激活觸發器
- 30. 異步觸發器vs觸發器
爲什麼你想這樣做嗎? – Woot4Moo
想到一個LOGON觸發器。 – jlnme
我還沒有嘗試過,但可能通過'EXECUTE IMMEDIATE'? –