触发器总结
Trigger是当特定的SQL DML 语句,如INSERT、UPDATE或者DELETE语句在特定的数据库表上运行时,由数据库自动激活的过程。触发器对于实现表中某个列值得高级变更审计等功能非常有用。
1、 触发器运行的时机
触发器可以在SQL语句运行之前和之后激活。
触发器根据DML语句影响的行数分为行级触发(row-level trigger)和语句级触发(statement-level)。
比如:一条UPDATE语句修改10行数据,同时还有一个行级触发器激活,那么这个行级触发器将运行10次;如果是一个语句级触发器,则是针对整条UPDATE语句而言的,触发器只激活一次
2、 创建触发器
语法如下:
create [orreplace] trigger <trigger_name>
{before|after|insteadof} {insert|update|delete}
on <table_name>
[for eachrow [when (trigger_condition)]]
begin
<body>
end <trigger_name>;
3、 获取触发器相关信息
select * from all_source where type=upper('trigger') andname=upper('<trigger_name>')
同时这条语句根据不同的type和name可以查看不同类型的内容
加upper的原因是库里的数据都是大写的,如果大家有更好的办法请给我留言
4、 禁用和启用触发器
禁用:alter trigger <trigger_