您的位置:首页 > 数据库

pl/sql编程----触发器

2019-04-17 17:17 274 查看

触发器 (trigger)
触发器指隐含的执行的存储过程,既当特定事件出现时自动执行的存储过程。
当定义触发器时,必须要指定触发的事件和触发的操作,常用的触发事件包括insert,update,delete语句,而触发操作实际就是一个pl/sql块

触发器的功能:自动生成数据,
自定义复杂的安全权限,
提供审计和日志记录,
启用复杂的业务逻辑

触发器类型
模式(DDL)触发器,执行DDL语句时执行
数据库级触发器,在发生打开,关闭,登录,退出数据库等系统事件时执行
DML触发器(行级触发器:对影响的每个行执行一次
语句级触发器:无论受影响的行数是多少,只执行一次
instead of 触发器 :用于用户不能直接使用DML语句修改的视图

使用create trigger 命令创建
语法
create or replace trigger 名
after/before/instead of
insert/[or]update of column/[or]delete
on 表名
[for each row ] --行触发器,每触发一行时触发
[when (condition)]
pl/sql块

脚本:

--删除表
drop table book;
--创建表book
create table book (bid number,bname varchar2(50),bhouse varchar2(50));
--插入数据
insert into book(bid,bname,bhouse) values(1,'笑傲江湖','人民出版社');
insert into book(bid,bname,bhouse) values(2,'钢铁是怎样炼成的','人民出版社');
insert into book(bid,bname,bhouse) values(3,'平凡的世界','人民出版社');
commit;

案例:

create or replace trigger tri_book
after insert on book
for each row
begin
if(:new.bid = 2) then
dbms_output.put_line('插入成功');
else
dbms_output.put_line('插入成功2');
end if;
end;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: