1 / 6
文档名称:

实验十 触发器.doc

格式:doc   大小:110KB   页数:6页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

实验十 触发器.doc

上传人:jiaoyuan2014 2018/3/30 文件大小:110 KB

下载得到文件列表

实验十 触发器.doc

文档介绍

文档介绍:触发器(trigger)
是一种特殊的存储过程,不需要由用户调用,当对数据库进行修改(插入、修改、更新)操作时,自动被系统执行。
在数据库应用过程中,DBMS需对数据库完整性状况及运行中的其他异常状况发出预警信息并进行相应处理,所以引入触发器,这是一种主动完整性约束机制。
触发器实现了数据库管理的ECA(event-condition-action rule )规则,也称主动数据库规则,即:当发生某一事件时,如果满足给定条件,则执行相应动作。
ECA规则体现了DBMS的主动服务性能,即根据发生的事件或数据库状态主动进行相关处理,由触发器实现。
触发器的功能及特性:
可强制执行较复杂的业务规则或要求。
可以禁止或回滚违反引用完整性的更改,从而取消所尝试的数据修改。
可以用来实施复杂的完整性约束,实现数据库中多张表的级联更新。
使用CHECK约束,可以限制不满足检查条件的记录输入到表中。CHECK约束的检查条件表达式不允许引用其它表中的字段,而触发器可以引用其它表中的字段,实现比CHECK约束更为复杂的约束。
*约束只能通过标准的系统错误信息传递错误信息。如果应用程序要求使用(或能从中获益)自定义信息和较为复杂的错误处理,则必须使用触发器。
*触发器可以从 DBA_TRIGGERS ,USER_TRIGGERS 数据字典中查到。
*触发器也可用于强制引用完整性,以便在多个表中添加、更新或删除行时,保留在这些表之间所定义的关系。然而,强制引用完整性的最好方法是在相关表中定义主键和外键约束。如果使用数据库关系图,则可以在表之间创建关系以自动创建外键约束。通常域完整性可通过 CHECK 约束进行强制,而引用完整性(RI) 可通过 FOREIGN KEY 约束进行强制。因此,在约束所支持的功能无法满足应用程序的功能要求时,触发器才显得极为有用。
*触发器是数据库语言程序化的一种表征,并且能够保证数据库的一致性,另一方面检测和维护触发器增大了系统开销,降低了修改数据库操作的效率。
*在数据库操作中,可以通过关系、触发器、存储过程、应用程序等来实现数据操作,同时规则、约束、缺省值也是保证数据完整性的重要机制。滥用触发器势必影响数据库的结构,并且增加数据库维护的复杂性。
触发器的触发方式
1、后触发
当引起触发器执行的更新语句执行完成,并通过各种约束检查后,才执行触发称为后触发。
创建后触发方式的触发器时用AFTER或FOR关键字来指定。
后触发只能创建在表上,而不能创建在视图上。
2、替代触发
引起触发器执行的更新语句停止执行,仅执行触发器语句,这种触发方式称做替代触发。
创建这种触发器时用INSTEAD OF关键字来指定。
替代触发可以创建在表或视图上。
3、inserted临时表和deleted临时表
每个触发器被激活时,系统都会为它自动创建两个临时表: inserted表和deleted表。
当执行INSERT语句向表中插入数据时,系统在将数据插入表的同时,自动把相应的数据插入到inserted这一系统临时表中;
当执行DELETE语句删除表中的数据时,系统在将数据从表中删除的同时,自动把删除的数据插入到deleted这一系统临时表中;
当执行UPDATE语句修改表数据时,系统先从表中删除原有的行,然后再