以下觀察結果在大型sqlite3數據庫上。在sqlite_trace回調函數上沒有名字的觸發器
設置: 我有一個視圖,它有一個字段的udpate觸發器。這個視圖的這個觸發器在不同的基礎表上有多個更新語句。這些表格還具有更新各個字段的觸發器。
另外,在我們的生產代碼中使用sqlite_trace方法進行註冊回調。此方法僅打印此給定數據庫上的活動。
觀察:
- 當這一觀點被該給定的字段更新後,更新基礎表的字段。
- 更新基礎表上的字段觸發其各自的觸發器。
- 調用了註冊的回調方法,該方法顯示使用觸發器名稱在數據庫上調用TRIGGER。
但是,有一些觸發器沒有名稱。或者回調方法只打印沒有名字的TRIGGER。例如:
- 更新視圖V1
- TRIGGER T1
- TRIGGER T2
- TRIGGER
- TRIGGER T3
- TRIGGER
- TRIGGER T4
我的問題是:這些是什麼未命名的觸發器?他們什麼時候打電話?這是因爲一些字段在表上有UPDATE RESTRICT/DELETE RESTRICT/CASCADE?我無法從這些觸發器獲得任何信息。試圖解決這些未命名的觸發器的奧祕。
此處沒有人知道您定義了什麼觸發器。 –