触发器讲解(未打印)

触发器讲解(未打印)

ID:38687079

大小:1004.50 KB

页数:6页

时间:2019-06-17

触发器讲解(未打印)_第1页
触发器讲解(未打印)_第2页
触发器讲解(未打印)_第3页
触发器讲解(未打印)_第4页
触发器讲解(未打印)_第5页
资源描述:

《触发器讲解(未打印)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、触发器:1,提出问题:当用户登陆的时候,自动记录该用户的名字,时间和IP。当用户在星期天对某张表进行删除操作的时候,我们提示不能这样做当用户删除某条记录的时候,自动将记录保存到另外一张表去2,解决之道————触发器触发器是指存放在数据库中,被隐含执行的存储过程,可以支持dml触发器,还支持基于系统时间(启动数据库,关闭数据库,登陆)和ddl操作建立触发器。3,触发器的分类:ddl(createtable,createview,drop......)触发器dml(insert,delete,update)触发器系统触发器(与系统相关的触发器

2、,比如用户登陆,退出,启动数据库,关闭数据库)4,触发器快速入门:在某张表上添加一条数据,提示“添加了一条记录”A:创建一张表Createtablemy_emp(idnumber;nanevarchar2(32));B:创建一个触发器:createorreplacetriggertrilafterinsertonscott.my_empbegindbms_output.put_lind(‘添加一条’);end;案例2:在某张表修改多条数据的时候,提示多次“修改了数据”====》这里讲解行级触发器和语句级触发器A:创建一张表Createta

3、blemy_emp(idnumber;nanevarchar2(32));B:创建一个触发器:createorreplacetriggertril2afterupdateonscott.my_empforeachrow---表示这是一个行级触发器begindbms_output.put_lind(‘修改一条’);end;案例3:为了禁止工作人员在休息日改变员工信息,开发人员可以建立before语句触发器,从而实现数据安全createorreplacetriggertril3beforedeleteonscott.my_empBeginif

4、to_char(sysdate,‘day’)in(‘星期日’,‘星期六’)thendbms_output.put_lind(‘休息期不能删除员工’);raise_application_error(100,‘休息期不能删除员工’);//下面截图讲解endif;end;此截图是对上面raise_application_error(100,‘休息期不能删除员工’);的讲解。5,使用条件谓词:当触发器中同时包含多个触发时机(insertupdatedelete)时,为了在触发器代码中区分具体的触发事件,可以使用三个条件:insertingupd

5、atingdeleting案例入门:为了禁止工作人员在休息日改变员工信息,开发人员可以建立before语句触发器,从而实现数据安全,在给出提示时,明确提示用户是进行的insert,update还是delete操作createorreplacetriggertril3beforedeleteorupdateordeleteonscott.my_empbegincasewheninsertingthendbms_output.put_lind(‘请不要添加’);raise_application_error(100,‘请不要添加’);when

6、updatingthendbms_output.put_line(‘请不要修改’);raise_application_error(101,‘请不要修改’);whendeletingthendbms_output.put_line(‘请不要删除’);raise_application_error(102,‘请不要删除’);endcase;end;6,使用:old和:new案例:1,在修改emp表雇员的薪水时,显示雇员工资修改前和修改后的值2,如确保在修改员工工资不能低于原有工资案例2:编写一个触发器,保证当用户在删除一张emp表记录的时候

7、,自动把删除的记录备份到另外一张表emp_bak中。A:建立一张备份表createtablemep_bak(idnumber;namevarchar2(2000));B:建立触发器createorreplacetriggertri4beforedeleteonScott。empforeachrowbegin----执行语句insertintoemp_bak(id,name)values(:old。empno,:old。ename);end;案例3:编写一个新的触发器,如何控制员工的新工资不能低于原来的工资,同时也不能高于原来工资的20%c

8、reateorreplacetriggertir5beforeinsertonscott.empforeachrowbeginif(:new.sal<:old.sal

9、

10、:new.sal>:o

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

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

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