一、oracle触发器介绍
触发器是一种特殊类型的存储过程,不由用户直接调用。触发器是存储在Oracle数据库中的一个命名PL / SQL块,并在发生触发事件时自动执行。该事件可以是以下任意事件:
- 对表例如执行的数据操纵语言(DML)语句,INSERT,UPDATE,或DELETE。例如,如果您定义了一个INSERT在customers表中的语句之前触发的触发器,则该触发器将在向表中插入新行之前触发一次customers。
- 数据定义语言(DDL)语句执行例如CREATE或ALTER语句。这些触发器通常用于审核目的,以记录架构的更改。
- 系统事件,例如Oracle数据库的启动或关闭。
- 用户事件,例如登录或注销。
- 执行触发器的动作也称为触发触发器。
二、触发器demo
触发器是建立在Triggers目录下,它不需要调用,根据条件自动触发触发器。
create or replace trigger SYSTEST_TESK--触发器名称
after insert or update or delete on "SYSTEM"."SYSTEST" --表名称
for each row
begin
IF INSERTING THEN --如果是插入
insert into system.task values(1,'触发器','insert');--业务处理
ELSIF DELETING THEN --否则如果是删除
insert into system.task values(2,'触发器','delete');--业务处理
ELSIF UPDATING THEN --否则如果是修改
insert into system.task values(3,'触发器','update');--业务处理
end IF;--结束判断
end;