标签:oracle
说明触发器可用于:1)数据确认 2)实施复杂的安全性检查.3)做审计,跟踪表上所做的数据操作等.4)数据的备份和同步
触发器语法:
CREATE [or REPLACE] TRIGGER 触发器名 {BEFORE | AFTER} {DELETE | INSERT | UPDATE [OF 列名]} ON 表名 [FOR EACH ROW [WHEN(条件) ] ] PLSQL 块
触发语句与伪记录变量的值:
触发语句 |
:old |
:new |
Insert |
所有字段都是空(null) |
将要插入的数据 |
Update |
更新以前该行的值 |
更新后的值 |
delete |
删除以前该行的值 |
所有字段都是空(null) |
案例1:限制非工作时间向数据库插入数 周六 周日 以及工作时间的非8点到18点的时间段是不可以在emp2表中插入数据的!
create or replace trigger myTrigger before insert on emp2 begin if to_char(sysdate,'day') in('星期六','星期日') or to_number(to_char(sysdate,'hh24')) not between 8 and 18 then raise_application_error(-20001,'不能在飞工作时间插入数据'); end if; end;
案例二: 确认数据(检查emp表中sal 的修改值不低于原值)也就是说你只能给员工涨工资儿不能减工资!
create or replace trigger checkSal before update of sal on emp2 for each row declare begin if :new.sal<:old.sal then raise_application_error(-20002,'更新薪水比之前的小!'); end if; end;
版权声明:本文为博主原创文章,未经博主允许不得转载。
标签:oracle
原文地址:http://blog.csdn.net/u014010769/article/details/47700233