触发器
与表联系在一起,当事件出现时将自动执行触发器的代码insert,update,delete当表被修改时,触发器自动执行
语法
create [or replace] trigger 触发器名 {before|after|instead of}/定义触发器的种类/
{insert[or delete][or update[of 列,…]]}
on 表名|视图名
[for each row [when 条件]]
PL/SQL语句;
before触发器在指定操作之前触发执行
after 之后
instead of 指定创建替代触发器
insert|delete|update指定触发事件,多个事件之间用or连接
on 表名 指定的表创建触发器
for each row 指定操作每影响一行触发一次
when 条件 额外的触发条件
删除emp表中一条记录时,显示一条信息
create or replace trigger empDel
after delete on emp
for each row
begin
dbms_output.put_line(:old.ename||‘被开除啦’);
end;
/
触发器中可以使用两个伪记录,:old代表旧记录,:new新记录
:old :new
insert null 值
delete 值 null
update 值 值
语句级触发器,在执行insert,delete,update时,不论影响了多少行,触发器只被触发一次
for each row 操作表的每行时都触发触发器,如,一条语句更新了5条记录,触发被触发5次