Oracle数据库触发器
数据库触发器:是一个与表相关联(定义在表上),存储的PLSQL程序
作用:每当一个特定的数据操作语句(insert,update,delete)在特定的表上触发时,Oracle自动的执行触发器中定义的语句序列;(注:select语句没有触发器)
下面我们先来写第一个触发器程序:每当成功插入新员工后,打印“插入成功”;触发器单词(trigger)
create trigger saynewemp
after insert
on emp
declare
begin
dbms_output.put_line('-----c');
end;
/
注:上边这行代码的意思是:在表emp上创建一个叫saynewemp的触发器,它在insert语句之后(after)触发,打印出想打印的话;
下面进行测试:运行如下代码
insert into emp(EMPNO,SAL,ENAME,DEPTNO) VALUES (1677,5000,'shii',20);
结果如下:
触发器的类型
- 语句级触发器:在指定的操作之前或之后执行一次,不管这条语句影响了多少行(语法上没有for each row)针对的是表;
- 行级触发器:触发语句作用的每一条记录都被触发,在行级触发器中使用:old和:new伪记录变量,识别值的状态,针对的是行。