韩顺平玩转oracle10g实战教程第7讲

韩顺平玩转oracle10g实战教程第7讲

ID:43179887

大小:166.00 KB

页数:16页

时间:2019-10-01

韩顺平玩转oracle10g实战教程第7讲_第1页
韩顺平玩转oracle10g实战教程第7讲_第2页
韩顺平玩转oracle10g实战教程第7讲_第3页
韩顺平玩转oracle10g实战教程第7讲_第4页
韩顺平玩转oracle10g实战教程第7讲_第5页
资源描述:

《韩顺平玩转oracle10g实战教程第7讲》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、主讲韩顺平玩转oracle10g实战教程主讲:韩顺平email:hanshunping@tsinghua.org.cn主讲韩顺平玩转oracle10g实战教程oracle第7讲-触发器主讲韩顺平玩转oracle10g实战教程触发器-引入■几个问题请大家考虑一个需求:当一个用户登录到oracle时,在一张表中记录登录到oracle的用户名和登录时间等信息,怎么办?再一个需求:禁止用户在星期天对某一张表进行删除操作,怎么办?再一个需求:当用户在删除一张表的时候,自动把删除的记录备份到另外一张表中….主讲韩顺平玩转oracle10g实战教程触发器—解决之道■解决之道很多关系数据库中都提供

2、一种技术,可以在用户进行某种操作的时候,自动的进行另外一个操作,我们把这种技术称为触发器技术.触发器是指存放在数据库中,被隐含执行的存储过程,可以支持dml触发器,还支持基于系统事件(启动数据库,关闭数据库,登陆)和ddl操作建立触发器。主讲韩顺平玩转oracle10g实战教程触发器—介绍■介绍当发生特定事件时,(如修改表,建立对象,登陆到数据库),oracle就会自动的去执行相应的代码.触发器分类:dml触发器、系统事件触发器、ddl触发器触发器由触发事件,触发条件,触发操作三个部分构成.主讲韩顺平玩转oracle10g实战教程触发器—创建语法■语法介绍CREATE[ORREPL

3、ACE]TRIGGERtrigger_name{BEFORE

4、AFTER}{INSERT

5、DELETE

6、UPDATE[OFcolumn[,column…]]}ON[schema.]table_name[FOREACHROW][WHENcondition]BEGINtrigger_body;END;主讲韩顺平玩转oracle10g实战教程触发器—dml触发器■快速入门1在某张表(my_emp)添加一条数据的时候,提示‘添加了一条数据’在某张表(my_emp)修改多条数据的时候,提示多次‘修改了数据’■行级触发器和语句级触发器的区别在创建触发器的时候,带不带foreachrow主讲韩顺

7、平玩转oracle10g实战教程触发器—dml触发器■快速入门2为了禁止工作人员在休息日改变员工信息,开发人员可以建立before语句触发器,从而实现数据的安全主讲韩顺平玩转oracle10g实战教程触发器—dml触发器■使用条件谓词当触发器中同时包含多个触发事件(insert,update,delete)时,为了在触发器代码中区分具体的触发事件,可以使用三个条件insertingupdatingdeleting为了禁止工作人员在休息日改变员工信息,开发人员可以建立before语句触发器,从而实现数据的安全,在给出提示时,明确提示用户是进行的insert,update还是delet

8、e操作主讲韩顺平玩转oracle10g实战教程触发器—dml触发器■使用:old和:new问题:当触发器被触发时,要使用被插入、更新或删除的记录中的列值,有时要使用操作前、后列的值.:new修饰符访问操作完成后列的值:old修饰符访问操作完成前列的值特性INSERTUPDATEDELETEOLDNULL有效有效NEW有效有效NULL案例:①在修改my_emp表雇员的薪水时,显示雇员工资修改前和修改后的值②如何确保在修改员工工资不能低于原有工资。主讲韩顺平玩转oracle10g实战教程触发器—dml触发器■课堂小练习编写一个触发器,保证当用户在删除一张表(my_emp2)记录的时候,

9、自动把删除的记录备份到另外一张表(my_emp2_bak)中….idname■实现精细化控制编写一个新的触发器,如何控制员工的新工资不能低于原来的工资,同时也不能高出原来工资的20%,使用约束显然无法实现该规则,我们看看主讲韩顺平玩转oracle10g实战教程触发器—系统触发器■系统触发器系统事件是指基于oracle事件(例如logon和startup)所建立的触发器.通过使用系统事件触发器,提供了跟踪系统或是数据库变化的机制.下面介绍一些常用的系统事件属性函数,和建立各种事件触发器的方法在建立系统事件触发器时,我们需要使用事件属性函数,常用的事件属性函数如下:ora_client

10、_ip_address//返回客户端的ipora_database_name//返回数据库名ora_login_user//返回登陆用户名ora_sysevent//返回触发触发器的系统事件名ora_des_encrypted_password//返回用户des加密后的密码主讲韩顺平玩转oracle10g实战教程触发器—系统触发器■建立登陆和退出触发器为了记录用户的登陆和退出事件,我们可以建立登陆和退出触发器为了记录用户名称,时间,ip地址.我们首先建立一张信息表sq

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。