解釋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.

更新於: 2021年7月3日

13K+ 瀏覽量

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告