解釋DBMS中的觸發器和活動資料庫
觸發器是一種過程,它由DBMS自動呼叫以響應資料庫的更改,並由資料庫管理員(DBA)指定。具有與一組關聯的觸發器相關聯的資料庫通常稱為活動資料庫。
觸發器的組成部分
觸發器的描述包含三個部分,如下所示:
事件 - 事件是對啟用觸發器的資料庫的更改。
條件 - 當觸發器被啟用時執行的查詢稱為條件。
操作 - 當觸發器被啟用且其條件為真時執行的過程。
觸發器的用途
觸發器可用於以下任何原因:
實現任何複雜的業務規則,這些規則無法使用完整性約束來實現。
觸發器將用於審計流程。例如,跟蹤對錶的更改。
觸發器用於在另一個相關操作發生時執行自動操作。
觸發器的型別
下面解釋了不同型別的觸發器:
語句級觸發器 - 無論語句影響的行數多少,它只為DML語句觸發一次。語句級觸發器是預設型別的觸發器。
前觸發器 - 在定義觸發器時,我們可以指定觸發器是在執行INSERT、DELETE或UPDATE等命令之前觸發還是在命令執行之後觸發。前觸發器自動用於在執行操作之前檢查資料的有效性。例如,我們可以使用前觸發器來防止刪除行,如果在給定情況下不允許刪除行。
後觸發器 - 它在觸發操作完成後使用。例如,如果觸發器與INSERT命令相關聯,則在將行插入表後觸發。
行級觸發器 - 它針對受DML命令影響的每一行觸發。例如,如果UPDATE命令更新了150行,則行級觸發器會觸發150次,而語句級觸發器只會觸發一次。
建立資料庫觸發器
要建立資料庫觸發器,我們使用CREATE TRIGGER命令。在建立觸發器時需要提供以下詳細資訊:
- 觸發器的名稱。
- 要關聯的表。
- 觸發器何時觸發:之前或之後。
- 呼叫觸發器的命令 - UPDATE、DELETE或INSERT。
- 是否為行級觸發器。
- 篩選行的條件。
- 觸發觸發器時要執行的PL/SQL塊。
建立資料庫觸發器的語法如下:
CREATE [OR REPLACE] TRIGGER triggername {BEFORE|AFTER} {DELETE|INSERT|UPDATE[OF COLUMNS]} ON table [FOR EACH ROW {WHEN condition]] [REFERENCE [OLD AS old] [NEW AS new]] BEGIN PL/SQL BLOCK END.
廣告