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

触发器 (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;

猜你喜欢

转载自blog.csdn.net/enbaoIT/article/details/89056890