首页 > 代码库 > 数据库触发器

数据库触发器

一、定义触发器

定义触发器的一般格式:

create trigger <触发器名称>

{before | after} <触发事件> on <表名>

for each {row | statement}

[when <触发条件>]

<触发动作体>;

1.触发事件

触发事件可以是insert、delete或update,也可以是几个事件的组合,如insert or delete等;

update后面还可以有of<触发列,...>,即进一步指明修改那些列时触发激活;

2.触发器类型

触发器安装所触发动作的间隔尺寸可以分为可以分为行级触发器(for each row)和语句级触发器(for each statement);

如果触发器是语句级触发器,触发动作只发生一次;

如果触发器是行级触发器,触发动作将执行n次(n是执行update时受影响的行数);

create trigger insert_sal
after insert on teacher
for each row
as begin
    insert into sal_log values(new.eno,new.sal,CURRENT_USER,CURRENT_TIMESTAMP);
end;

二、删除触发器

删除触发器的一般格式:

drop trigger <触发器名称> on <表名>;

drop trigger insert_sal on teacher;

  

数据库触发器