Oracle触发器简单示例

触发器案例:
create or replace trigger insert_update_emp_trg
before insert or update
on emp
for each row
declare
can_not_update exception;
begin
if inserting then
select emp_seq.nextval into :new.empno from dual;--按行插入定义好的序列
end if;
if updating then
if :old.empno=7788 then
raise can_not_update;--当要更新管理员的时候,跑出异常终止更新。
end if;
end if;
end;

总结:


触发器:它是一种特殊的存储过程,
当特定事件发生时候自动调用。外号(事件监听器)。
功能:1,自动生成数据,比如你插入一条数据不符合要求,可以通过触发器来更改将要插入的缓冲区的临时数据更改成自己想要的数据,实现生成数据。
2,自定义复杂的安全权限,可以通过:new ,:old中的列值来判断数据是否安全,然后处理。
3,审计和日志记录,触发器可以通过after类型的触发器,来完成更新后的日志安全记录。
4,启用复杂的业务逻辑。

分类:1按事件分{DDL,DML,系统事件触发器}
2按时机分{before,after,instead of }后者只能用在视图上。
3按影响行数分{行级触发器,语句级触发器(表级)}
特殊的行变量{:old 存放原来的数据,:new存放新数据} 只能用在行级触发器中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值