触发器trigger

触发事件:引起触发器运行的操作,包含:dml语句(delete update insert对数据的操纵)、ddl(create、alter drop对数据库表的结构的创建 修改 删除),数据库系统事件(数据库的启动、退出、异常错误)、用户事件(登录或退出数据库)。

1、触发器的语法格式:

create [or replace] trigger tri_name
[before|after|instead] of tri_event
on table_name|view_name|user_name|db_name
[for each row[ when tri_condition]
begin
plsql_sentences;
end tri_name;
/

此语法中关键字:trigger

before:表示在执行dml操作之前触发,这种方式能够防止某些错误操作发生便于回滚或实现某些业务规则。

alter:表示在执行dml操作之后触发,这种方式便于记录该操作或某些事后处理信息。

instead of  :表示触发器为替代触发器

for each row:行级触发器,当dml语句对每一行数据进行操作都会引发该触发器。如果未指定该条件,则表示创建语句触发器,这时无论数据操作影响多少行,触发器都只会执行一次。

tri_name:触发器的名称

tri_event:触发事件有insert update delete create alter drop等。

when tri_condition:触发条件子句。只有该表达式为true时,遇到触发事件,才会执行触发器,使其执行触发操作,否则即便是遇到触发操作,也不会执行触发器。

2、oracle支持的触发器分类:

行级触发器:当dml语句对每一行数据进行操作时,都会引起该触发器的运行。

语句级触发器:无论dml影响多少行数据,所引起的触发器只执行一次。

替换触发器:该触发器是定义在视图上的,不是定义在表上,他是用来替换所使用实际语句的触发器。

用户事件触发器:是指与ddl操作、用户登录退出数据库等事件相关的触发器。如用户登录到数据库或使用alter修改表的结构等事件的触发器。

系统事件触发器:在Oracle数据库系统的事件中进行触发的触发器。如数据库的实例的启动、关闭。

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值