最新风瘙痒讲义课件_图文.教学讲义PPT课件.ppt

最新风瘙痒讲义课件_图文.教学讲义PPT课件.ppt

ID:62193590

大小:518.50 KB

页数:38页

时间:2021-04-21

最新风瘙痒讲义课件_图文.教学讲义PPT课件.ppt_第1页
最新风瘙痒讲义课件_图文.教学讲义PPT课件.ppt_第2页
最新风瘙痒讲义课件_图文.教学讲义PPT课件.ppt_第3页
最新风瘙痒讲义课件_图文.教学讲义PPT课件.ppt_第4页
最新风瘙痒讲义课件_图文.教学讲义PPT课件.ppt_第5页
资源描述:

《最新风瘙痒讲义课件_图文.教学讲义PPT课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、风瘙痒讲义课件_图文.Oracle数据库技术触发器教学目标掌握触发器的概念掌握触发器的定义和使用方法了解在触发器中如何抛出用户自定义异常信息重点及难点触发器定义触发器应用(难点)触发器触发器类似于过程或函数,因为它们都是拥有声明、执行和异常处理过程的带名PL/SQL块。与包类似,触发器必须存储在数据库中并且不能被块进行本地化声明。但是,对于过程而言.可以从另一个块中通过过程调用显式地执行一个过程。同时在调用时可以传递参数。对于触发器而言,当触发事件发生时就会显式地执行该触发器。并且触发器不接受参数。执行触发器的操作就是“点火”(firi

2、ng)触发器。触发器事件是在数据库表上执行的DML(INSERT、UPDATE或DELETE)操作。触发器可以使用触发器做许多事情,包括1。维护不可能在表创建时刻通过声明性约束进行的复杂的完整性约束限制。2。通过记录所进行的修改以及谁进行了修改来审计表中的信息。3。当表被修改的时候,自动给其他需要执行操作的程序发信号。触发器触发器不可缺少的部件是触发器名、触发事件和触发器主体。1.触发器名触发器名的名字空间不同于其他子程序的名字空间。“名字空间”是可以用作对象名字的合法标识符的集合。过程、包和表的名字空间相同。这就是说,为过程和包赋予相

3、同的名字将是非法的。但是,触发器却使用的是单独的名字空间。这意味着触发器可以使用和表或过程相同的名字。但是,在一个数据模式中,一个名字仅能用于一个触发器。触发器触发器事件决定了触发器的类型。触发器可以按照INSERT、UPDATE或DELETE操作进行定义,并且它们也可以点火进行行操作或语句操作。触发器也可以对多种类型的触发语句点火。触发器的语法结构完整的过程结构如下:createorreplacetrigger触发器名[before

4、after

5、insteadof]trigger_event[foreachrow]begin执行语句段

6、;exception异常处理语句段;end;注意事项(1)一个FOREACHROW执行指定操作的触发器为操作修改的每一行都调用一次(行级触发器)。若不带该参数则表示该触发器为语句级触发器,语句级触发器只在插入,修改或删除时执行一次,无论插入,修改,删除影响的是单行还是多行。(2)SELECT并不更改任何行,因此不能创建SELECT触发器。(3)触发器和某一指定的表格有关,当该表格被删除时,任何与该表有关的触发器同样会被删除。(4)在一个表上的每一个动作只能有一个触发器与之关联。Instead-of触发器PL/SQL提供了另外一种触发器。

7、Instead-of触发器仅可以定义在视图上,并且它们可以替代点火它们的DML语句进行点火。Instead-of触发器必须是行级的。Instead-of触发器是必要的,因为定义触发器的视图可能基基于联结(join)并且并非所有的联结都是可更新的。该触发器便可以按照所需的方式执行更新。例如:Instead-of触发器定义下面的视图:createorreplaceviewstu_avgasselectsno,avg(grade)stu_avgfromscgroupbysno;若执行下面语句:deletefromstu_avgwheresno

8、='001';则报错:ORA-01732:此视图的数据操纵操作非法Instead-of触发器创建触发器:createorreplacetriggerstu_avg_deleteinsteadofdeleteonstu_bforeachrowbegindeletefromscwheresno=:old.sno;end;再执行删除语句,则删除成功。对触发器的限制触发器的主体是一个PL/SQL块。在PL/SQL块中可以使用的所有语句在触发器主体中都是合法的,但是要受到下面限制的约束:1.触发器不应该使用事务控制语句-COMMIT,ROLLBA

9、CK或SAVEPOINT。触发器作为触发语句执行的一部分被点火,它和触发语句在同一个事务中。当触发语句被提交或撤回提交时,触发器的上作也相应被提交或撤回提交。2.由触发器主体调用的任何过程或函数都不能使用事务控制语句。3.触发器主体不能声明任何LONG或LONGRAW变量。而且,:new和:old不能指向定义触发器的表中的LONLONG或LONGRAW列。4.触发器主体可以访问的表有所限制。根据触发器类型以及在表上的约束限制的不同,表可能也会变化。查询,删除和禁止触发器在user_triggers视图中可以查询触发器:select*fr

10、omuser_triggerswheretrigger_name=upper('stu_avg_delete');删除触发器:Droptriggerstu_avg_delete;禁止和打开触发器:alter

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

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

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