一. Oracle 触发器
-
什么是触发器
监听器:监听表中的数据是否发生了改变(insert ,update ,delete) -
监听器语法
create or replace trigger 触发器名称
before | after --在改变之前或之后执行触发器
insert | update | delete --监听哪一个动作
on 表名 – 监听哪一张表
触发器的级别
表级触发器:默认的
更新多条记录,执行一次
行级触发器: for each row
更新多条记录,执行多次
使用old ,new关键字必须使用 行级触发器declare
– 声明变量
begin
– plsql
end; -
栗子 :添加一条记录,在控制台打印 ‘添加了一条记录’
create or replace trigger insertEmpPrint
before --在改变之前或之后执行触发器
insert --监听哪一个动作
on emp – 监听哪一张表
declare
begin
dbms_output.put_line(‘添加了一条记录’);
end;
insert into emp(empno ,ename ) values(1005,‘lucy’);
4. 栗子: 不能给员工降薪
create or replace trigger notUpdateLowerSal
before --在改变之前或之后执行触发器
update --监听哪一个动作
on emp – 监听哪一张表
for each row
declare
begin
– 判断更新之前与更新之后谁大
– 如果更新后小于更新前-- 降薪 – 反抗
if :new.sal < :old.sal then
–dbms_output.put_line(‘不能给员工降薪’);
– raise_application_error(p1 ,p2) – 窗口对象
– p1 : 错误编号 -20001 ~~ -20999
– p2 : 错误信息
raise_application_error(-20001,‘不能给员工降薪’);
end if;
end;
update emp set sal = sal - 1 where empno = 7788;

Oracle 存储函数
Oracle 存储过程
Oracle 游标
Oracle plsql基本语句
Oracle 视图,索引
本文深入讲解Oracle触发器的概念与应用,包括监听器的功能与语法、表级与行级触发器的区别,以及如何使用触发器防止数据降薪操作。同时,介绍了触发器中变量声明与PL/SQL语句的使用。
592

被折叠的 条评论
为什么被折叠?



