首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> DB2 資料庫 >> DB2 教學

DB2 Express-C 9 實作實驗:建立觸發器與使用者自訂函數 (UDF)

     編輯:DB2 教學

實驗 11:建立觸發器 (Trigger)

目標

觸發器為資料庫物件,在資料表發生修改操作 (INSERT/UPDATE/DELETE) 時自動執行業務邏輯。本實驗使用控制中心建立觸發器,針對 SALES 表的 UPDATE 操作維護稽核日誌,記錄修改使用者 ID 與時間戳記。

步驟

  1. 開啟控制中心
  2. 建立稽核日誌表 saleslog:
    userid VARCHAR(128) NOT NULL, daytime TIMESTAMP NOT NULL
    (可用命令編輯器 CREATE TABLE 或建立表精靈)
  3. 右鍵「觸發器」資料夾 → 「建立」
  4. 填寫基本資訊:
    Schema:登入使用者 ID
    名稱:audit_sales
    目標表:Sales
    觸發時機:AFTER
    觸發操作:UPDATE OF COLUMNS (不指定欄位,任一欄位更新即觸發)
    註解:Logs all update actions on Sales table.
  5. 「觸發動作」頁籤選擇「陳述式」(FOR EACH STATEMENT),輸入 SQL:
    WHEN (1=1)
    BEGIN ATOMIC
      INSERT INTO DB2ADMIN.saleslog (userid, daytime)
      VALUES (CURRENT USER, CURRENT TIMESTAMP);
    END
    說明:陳述式觸發器於觸發陳述式執行完後執行一次;列觸發器則每影響一列執行一次。
  6. 確定建立,控制中心觸發器資料夾將顯示 audit_sales
  7. 驗證:清空 saleslog → 更新 sales 表一筆記錄 → 再查 saleslog 應新增一筆日誌

開啟建立觸發器對話框 設定觸發器選項 設定觸發動作 檢視建立的觸發器

實驗 12:建立使用者定義函數 (UDF)

目標

使用 IBM Data Studio (原 DB2 Developer Workbench) 建立標量 SQL UDF,熟悉 SQL PL 語法與開發流程。

前置條件

  • 已下載安裝 IBM Data Studio
  • 具備 SQL 與資料庫函數基礎概念

步驟

  1. 啟動 Data Studio,開啟專案
  2. 右鍵「User-Defined Functions」資料夾 → New → SQL User-Defined Function (或使用精靈)
  3. 編輯器中輸入函數碼:
    CREATE FUNCTION booktitle(p_bid INTEGER)
    RETURNS VARCHAR(300)
    SPECIFIC booktitle
    F1: BEGIN ATOMIC
      DECLARE v_book_title VARCHAR(300);
      DECLARE v_err VARCHAR(70);
      SET v_book_title = (SELECT title FROM books WHERE p_bid = book_id);
      SET v_err = 'Error: The book with ID ' || CHAR(p_bid) || ' was not found.';
      IF v_book_title IS NULL THEN
        SIGNAL SQLSTATE '80000' SET MESSAGE_TEXT = v_err;
      END IF;
      RETURN v_book_title;
    END
  4. 右鍵函數 → Deploy 部署建置
  5. 工具列 Run 執行,輸入參數 80002 查看結果,再試 1002 觀察錯誤訊息 (Output 視窗 Messages 區)
  6. 完成後關閉 Data Studio
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved