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