首頁  >  文章  >  資料庫  >  oracle資料庫觸發器怎麼激活

oracle資料庫觸發器怎麼激活

下次还敢
下次还敢原創
2024-04-07 16:42:25776瀏覽

Oracle 資料庫觸發器在 DDL(如 CREATE、ALTER)或 DML(如 INSERT、UPDATE、DELETE)操作時啟動:DDL 操作啟動基礎表上定義的觸發器。 DML 操作會啟動基礎表上定義的觸發器。

oracle資料庫觸發器怎麼激活

Oracle 資料庫觸發器啟動

#啟動觸發器的方法

Oracle 資料庫觸發器可在以下兩種情況下自動啟動:

  1. DDL 操作:當基礎表進行諸如CREATE、ALTER、TRUNCATE 等DDL 操作時,將啟動該表上定義的觸發器。
  2. DML 操作:當對基礎表進行諸如 INSERT、UPDATE、DELETE 等 DML 操作時,將啟動該表上定義的觸發器。

觸發器激活範例

為了說明觸發器的激活,我們建立一個簡單的範例表以及一個在該表上定義的觸發器:

<code class="sql">-- 创建示例表
CREATE TABLE employees (
  id NUMBER PRIMARY KEY,
  name VARCHAR2(50),
  salary NUMBER
);

-- 定义触发器
CREATE TRIGGER salary_check BEFORE UPDATE ON employees
FOR EACH ROW
BEGIN
  IF NEW.salary < 0 THEN
    RAISE_APPLICATION_ERROR(-20001, 'Salary cannot be negative');
  END IF;
END;</code>

現在,當我們嘗試使用DML 操作更新員工表時,觸發器將被啟動並執行:

<code class="sql">-- 尝试更新员工的薪水为负值
UPDATE employees SET salary = -100 WHERE id = 1;

-- 触发器将引发错误并回滚操作
ORA-20001: Salary cannot be negative</code>

需要注意的要點

  • 每個表上的觸發器只會在特定的DML 或DDL 操作上啟動。
  • 觸發器可以定義為 BEFORE(在操作執行前)或 AFTER(在操作執行後)啟動。
  • 觸發器可以在 INSERT、UPDATE、DELETE 或 DDL 操作後啟動。
  • 觸發器可以用來強製完整性限制、執行業務邏輯或記錄對資料表的變更。

以上是oracle資料庫觸發器怎麼激活的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn