触发器知识总结

上传人:人*** 文档编号:490103916 上传时间:2023-03-13 格式:DOC 页数:5 大小:17.50KB
返回 下载 相关 举报
触发器知识总结_第1页
第1页 / 共5页
触发器知识总结_第2页
第2页 / 共5页
触发器知识总结_第3页
第3页 / 共5页
触发器知识总结_第4页
第4页 / 共5页
触发器知识总结_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《触发器知识总结》由会员分享,可在线阅读,更多相关《触发器知识总结(5页珍藏版)》请在金锄头文库上搜索。

1、Oracle知识总结触发器1. 数据库触发器(DataBase Trigger)是存储在数据库中的过程,当表被修改时它隐式地被激发(执行)。2. 在Oracle中允许在对表进行insert、update或delete操作时隐式地执行所定义的过程,这些过程称为数据库触发器。3. 触发器的作用:(1) 自动生成导出的列值。(2) 防止无效的事务。(3) 实施更复杂的安全性检查。(4) 在分布式数据库中实施跨越结点的引用完整性。(5) 实施复杂的事务规则。(6) 提供透明事件日志。(7) 提供高级审计。(8) 维护同步表的复制。(9) 收集关于存取表的统计。4. 触发器的优点:(1) 触发器是自动的

2、:当对表中的数据作了任何修改之后立即被激活。(2) 触发器可以通过数据库中的相关表进行层叠更改。(3) 触发器可以强制限制,这些限制比用check约束所定义的更复杂。5. 触发器的分类:(1) DML触发器:由对表的insert、delete、update激发。(2) Instead of 触发器:代替直接对视图insert、delete、update操作。(3) 系统触发器:DDL事件(create、alter、drop语句),需要admistrater、datebase、trigger特权。数据库事件:服务器启动、关闭、用户登录、注销、服务器错误等。6. 创建触发器语法:Create or

3、 replace trigger 模式 触发器名Before | after insert | delete | (update of 列名)On 表名for each rowWhen 条件PL/SQL 块注释:For each row的意义是:在一次操作表的语句中,每操作成功一行就会触发一次;不写的话,表示是表级触发器,则无论操作多少行,都只触发一次。When条件的出现说明了,在DML操作的时候也许一定会触发触发器,但是触发器不一定会做实际的工作,比如when后面的条件不为真的时候,触发器只是简单地跳过了PL/SQL块。7. 创建触发器应该注意:(1) truncate table语句类似与

4、没有where子句(用于删除行)的delete语句,不会引发触发器,因为truncate table语句没有记录,删除时,不会写日志。(2) writetext语句不会引发insert或update触发器。(3) 当创建一个触发器时必须指定:名称。在其上定义触发器的表。触发器将何时激发。激活触发器的数据修改语句。8. 触发器的原理:(1) 每个触发器有两个特殊的表:插入表和删除表。这两个表是逻辑表。并且这两个表是由系统管理的,存储在内存中,而不是数据库中,因此不允许用户直接对其修改。(2) 这两个表的结构总是与被该触发器作用的表的结构相同。这两个表是动态驻留在内存中,当触发器的工作完成,这两个

5、表也被删除。(3) 这两个表的主要保存因用户操作而影响到得原数据值或新数据值。(4) 这两个表是只读的,用户不能向这两个表写入数据,但是可以引用表中的数据。9. new与old:(1) 必须是针对行级触发器的,也就是说要使用这两个变量的触发器一定有for each row。(2) 这两个变量是系统自动提供的数组变量,new用来记录新插入的值,old用来记录被删除的值。(3) 使用insert的时候只有:new里有值。(4) 使用delete的时候只有:old里有值。(5) 使用update的时候:new和old里都有值。10. instead of 触发器的原理:(1) 当为表或视图定义针对某

6、一操作(insert、delete、update)的instead of类型的触发器且执行了相应的操作时,尽管触发器被触发,但相应的操作并不被执行而运行的仅是触发器的SQL语句本身。(2) Instead of 触发器主要优点是:使不可修改的视图能够支持修改。其中最典型的是分割视图。为了提高查询的性能,分割视图通常来自多个表的结果集,但是也正是因此而不支持视图的更新。(3) 通过使用逻辑语句以执行批处理的某一部分而放弃执行其余的部分,可以定义触发器在遇到某一错误时,转而执行触发器的另外部分。(4) Instead of insert 执行你在触发器里面的代码,替代系统insert操作。11. 创建Instead of 触发器注意:(1) create trigger语句必须是批处理中的第一个语句。(2) 创建触发器的权限默认分配给表的所有者,且不能将该权限转给其他用户。(3) 触发器为数据库对象,其名称必须遵循标识符的命名规则。(4) 虽然触发器可以引用当前数据库以外的对象,但只能在当前数据库中创建触发器。(5) 虽然不能在临时表或系统表上创建触发器,但是触发器可以引用临时表。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > 总结/计划/报告

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号