數據庫中的觸發器


摘自百度百科:觸發器(trigger)是SQL server 提供給程序員和數據分析員來保證數據完整性的一種方法,它是與表事件相關的特殊的存儲過程,它的執行不是由程序調用,也不是手工啟動,而是由事件來觸發比如當對一個表進行操作( insert,delete, update)時就會激活它執行。觸發器經常用於加強數據的完整性約束和業務規則等。

觸發器的類型

  觸發器分為語句級觸發器和行級觸發器(for each row)

  1)語句級觸發器:是指在指定的操作語句之前或之后執行一次,不管影響多少行, 都只會執行一次。

  2)行級觸發器:觸發語句作用的每一條記錄都被觸發也就是影響多少行,就觸發多少次。在行級觸發器中使用old和new偽記錄變量,識別值的狀態。

:old 代表舊的記錄, 更新前的記錄------:new 代表的是新的記錄

觸發器基本語法:

    create [or replace] trigger trigger_name
      before|after
      delete|insert|update [of 列名]
      on 表名
      [for each row [where 條件]]
    declare
      ...
    begin
      plsql塊
    end trigger_name;

例如:插入員工之后打印一句話

  create or replace trigger inputtest
    before insert on person
  declare
  begin
    dbms_output.put_line('歡迎新員工');
  end inputtest;

insert into person values(123,'jason','hello');

結果輸出:歡迎新員工。

操作語句與偽指令的含義如下表:

需要注意的是:觸發器中不能提交事務,也不能回滾事務。如果出現了錯誤就需要拋出異常。

以上就是觸發器的基本知識和簡單應用。 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM