Oracle数据库触发器数据的确认
程序员文章站
2022-05-08 20:29:50
...
一 需求
涨工资不能越涨越少。
二 代码
--触发器应用场景2:数据的
--涨后的薪水不能少于涨前的薪水
/*
:old和:new代表的是同一条记录
:new 表示操作该行之前,这一行的值
:old 表示操作该行之后,这一行的值
*/
create or replace trigger checksalary
before update
on emp
for each row
begin
if:old.sal >:new.sal then
raise_application_error(-20002,'涨后的薪水不能少于涨前的薪水 涨前'||:old.sal||'涨后'||:new.sal);
endif;
end;
/
三 验证
SQL> update emp set sal=sal+1 where empno=7839;
已更新 1 行。
SQL> update emp set sal=sal-1 where empno=7839;
update emp set sal=sal-1 where empno=7839
*
第 1 行出现错误:
ORA-20002: 涨后的薪水不能少于涨前的薪水 涨前10101涨后10100
ORA-06512: 在 "SCOTT.CHECKSALARY", line 3
ORA-04088: 触发器 'SCOTT.CHECKSALARY' 执行过程中出错
上一篇: linux设备驱动整理(2)
下一篇: 不得不知的女性憋尿的危害