触发器(一、语句级和行级的区别及使用场景)

Oracle触发器分为语句级(STATEMENT)和行级(ROW)两种,从字面意思上理解,

语句级触发器是指一条SQL语句触发一次;

行级触发器是指一条SQL语句影响的每一行触发一次。

看个案例就很明显了

先建2张测试表from_table和to_table,from_table插入5条记录


接着在to_table上建2个触发器,分别是语句级和行级,其中行级触发器有for each row的声明


下面执行一条insert语句,把from_table中的每一行写入到to_table中


发现2个现象:

1.行级触发器触发了5次,即每一行触发1次;语句级触发器只触发了1次;

2.语句级触发器在行级触发器之后触发(AFTER的时候),如果用BEFORE触发,则语句级触发器先执行。


那么这2种触发器分别在什么情况下使用呢?

1.如果需要对每一行数据做处理,使用行级触发器

2.语句执行完成后,做该语句的后续业务处理,用语句级触发器。


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值