MySQL和Oracle觸發器

當我們需要用到觸發器的時候,還是很方便,你會指定當我在操作某一事件時觸發效果完成我所希望完成的事情;這就是觸發器

觸發器格式

MySQL觸發器格式

CREATE TRIGGER trigger_name  
    BEFORE|AFTER INSERT|UPDATE|DELETE ON table_name  
    [FOR EACH ROW]  
BEGIN  
DECLARE arg_name1[,arg_name2,...] type [DEFAULT value]  
    sql語句  
END

Oracle觸發器格式

CREATE [OR REPLACE] TRIGGER trigger_name   
    BEFORE|AFTER INSERT|UPDATE|DELETE ON table_name   
    [FOR EACH ROW]  
DECLARE arg_name type [CONSTANT] [NOT NULL] [:=value]   
BEGIN  
    pl/sql語句  
END 

示例

下面一個示例是我在刪除某個數據庫表數據時候,自動觸發觸發器備份數據表,並自動填充記錄更新時間(UPDATE_TIME):

MySQL版本

create trigger 觸發器名字
  before delete on 源表名
  for each row
begin
  insert into 新表名(ID,表的字段)values(:old.id,:old.表的字段);
end;

Oracle版本

create or replace trigger 觸發器名字
  before delete on 源表名
  for each row
begin
  insert into 新表名(ID,表的字段)values(:old.id,:old.表的字段);
end;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章