首页 / ORACLE / oracle 学习笔记之触发器
oracle 学习笔记之触发器
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了oracle 学习笔记之触发器,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1483字,纯文字阅读大概需要3分钟。
内容图文
语句级触发器:在指定的操作语句操作之前或之后运行一次,无论这条语句影响了多少行 。
行级触发器(FOR EACH ROW):触发语句作用的每一条记录都被触发。
在行级触发器中使用old和new伪记录变量, 识别值的状态。
触发器可用于: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 学习笔记之触发器
标签:blog after enter uri 存储 检查 案例 时间段 sso
本文系统来源:http://www.cnblogs.com/mfmdaoyou/p/6868099.html
内容总结
以上是互联网集市为您收集整理的oracle 学习笔记之触发器全部内容,希望文章能够帮你解决oracle 学习笔记之触发器所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。