触发器+触发器的类型+创建触发器+查询当前用户创建的触发器

来源:互联网 发布:成都租房 知乎 编辑:程序博客网 时间:2024/06/16 05:19

触发器
1是一种特殊的存储过程
2它发生某种数据库时间时,由oracle系统自动触发
3触发器用于加强数据完整性约束和业务规则等

触发器的类型
1DML触发器
DML触发器由DML语句触发,如insert,update,delete语句
)DML触发器按触发事件分类
01)before触发器:在DML事件发生之前采取行动
02)after触发器:在DML事件发生之后采取行动
03)语句级触发器:针对某条语句触发一次
04)行级触发器:针对语句所影响的每一行都触发一次,如update语句修改了10行数据,那么针对update事件的语句级触发器只触发一次,而行家触发器触发10次。
2替代触发器
替代触发器也叫作instead of触发器,用于执行一个替代操作来代替触发事件的操作,如针对update事件的instead of 触发器,每当出现updates事件时,该语句都不会被执行,而是执行instead of 触发器定义的语句
3系统触发器
系统触发器在发生如数据库启动或者关闭等系统事件时触发
4DDl触发器
1DDL触发器有DDL语句触发,如create,alter,drop语句
2DDL触发器可以分为befeor触发器与after触发器.

创建触发器
语法如下
create 【or replace】trigger trigger_name
【befer | after | instead of 】 trigger_enent
{on table_name| view_name | database}
【for each row】
【enable |disable】
【when trigger_condition】
【declare declaration_statements;】
begin
trigger_body;
end 【trigger _name 】

or replace:替代原有的触发器
trigger_name :吃饭名称
befer:before 触发器
after:after触发器
instead of :替代触发器
trigger_enent:指定触发事件
on table_name| view_name | database:用来表示触发器要操作哪个对象
for each row:定义行级触发器,如果不指定该语句,默认语句级触发器
enable |disable: enable 创建的触发器立即使用,disable 创建的触发器被禁用,默认enable
when trigger_condition:创建触发器的执行条件
declare declaration_statements:声明部分
trigger_body;触发器具体的执行语句

查询当前用户创建的触发器

set linesize 200;column name format a40;column type format a40;
 select name,type from user_source ;select * from user_source;
原创粉丝点击