使用 MySQL 觸發器的優缺點和限制是什麼?
我們必須瞭解使用 MySQL 觸發器的優缺點和限制,以便我們能夠有效地使用它。
優點
以下是使用 MySQL 觸發器的優點:
- 資料完整性 - 透過 MySQL 觸發器,我們可以檢查表中資料的完整性。換句話說,MySQL 觸發器是檢查資料完整性的另一種方法。
- 用於捕獲錯誤 - MySQL 觸發器可以捕獲資料庫層中業務邏輯中的錯誤。
- 執行計劃任務的替代方法 - 實際上,透過使用 MySQL 觸發器,我們不必等待執行計劃任務,因為觸發器會在修改表中的資料“之前”或“之後”自動呼叫。
- 審計 - 實際上,MySQL 觸發器對於審計對錶所做的更改非常有用。
- 防止無效事務 - MySQL 觸發器在防止無效事務方面非常有用。
- 事件日誌 - MySQL 觸發器可以記錄事件,還可以儲存有關表訪問的資訊。
缺點
以下是使用 MySQL 觸發器的缺點:
- 無法替代所有驗證 - 實際上,MySQL 觸發器無法替代所有驗證,只能提供擴充套件驗證。
- 對客戶端應用程式不可見 - 基本上,MySQL 觸發器是在客戶端應用程式不可見的情況下呼叫和執行的,因此很難弄清楚資料庫層中發生了什麼。
- 給伺服器帶來負載 - 觸發器可能會給資料庫伺服器帶來高負載。
- 不建議用於高資料速度 - 觸發器不適合用於高資料速度,即每秒事件數量較多的資料。這是因為在高資料速度的情況下,觸發器會一直被觸發。
限制
以下是 MySQL 觸發器的一些限制:
- 每個時間/事件只能有一個觸發器 - 每個表對於每個時間/事件組合只能有一個觸發器(即:我們不能為同一個表定義兩個 BEFORE INSERT 觸發器)。
- 不允許使用 RETURN 語句 - 由於觸發器不返回值,因此不允許使用 RETURN 語句。
- 外部索引鍵限制 - 觸發器不會被外部索引鍵操作啟用。
- 元資料過時 - 假設,如果將觸發器載入到快取中,則當表元資料更改時不會自動重新載入它。在這種情況下,觸發器可以使用過時的元資料進行操作。
- 不能使用 'CALL' 語句 - 我們不能在觸發器中使用 CALL 語句。
- 不能建立臨時表或檢視 - 我們不能為臨時表或檢視建立檢視。
- 不會被 INFORMATION_SCHEMA 中的更改啟用 - 實際上,觸發器不會被 INFORMATION_SCHEMA 或 performance_schema 表中所做的更改啟用。這是因為這些表是檢視,並且不允許在檢視上使用觸發器。
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP