如何在 ORDERS DB2 表上建立一個新的 TRIGGER?請給出 TRIGGER 的語法。


觸發器是資料庫中由事件驅動的程式,它們由資料庫自動觸發。觸發器是使用 CREATE TRIGGER 語句建立的。

例如,我們希望建立一個觸發器,在 ORDERS 表中每次插入新記錄後,將 ORDERS 表的 ORDER_COMMISION 列更新為 ORDER_TOTAL 值的 5%。

示例

CREATE TRIGGER ORDERCOMMUPD AFTER INSERT ON ORDERS
FOR EACH ROW MODE DB2SQL BEGIN ATOMIC UPDATE ORDERS
SET ORDER_COMMISION=(5*ORDER_TOTAL)/100;

使用上述語句,我們建立了一個 AFTER 觸發器,它將在 ORDERS 表中插入任何新行後自動觸發。類似地,我們可以使用 BEFORE TRIGGER,它會在對所需表進行任何修改之前自動觸發。觸發器也根據觸發的語句進行分類。

  • 當 INSERT 查詢將資料插入 DB2 資料庫時,INSERT 觸發器將被執行。
  • 當 UPDATE 查詢修改 DB2 資料庫中的資料時,UPDATE 觸發器將被啟用。
  • 當 DELETE 查詢從 DB2 資料庫中刪除資料時,DELETE 觸發器將被執行。

觸發器主要用於由於效能問題或複雜的業務邏輯而無法使用 CHECK 約束的情況。可以使用“CREATE TRIGGER”命令建立觸發器,可以使用“DROP TRIGGER”命令刪除觸發器。

例如,如果我們想建立一個觸發器,我們可以使用以下命令。

示例

CREATE TRIGGER ORDERDISCOUNT AFTER INSERT ON ORDERS
FOR EACH ROW MODE DB2SQL BEGIN ATOMIC UPDATE ORDERS
SET ORDER_DISCOUNT=(10*ORDER_TOTAL)/100;

可以使用以下命令刪除觸發器。

DROP TRIGGER ORDERDISCOUNT

更新於: 2020-12-01

401 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.