Oracle触发器详解:DML、替代与系统触发器
版权申诉
182 浏览量
更新于2024-07-07
收藏 205KB DOCX 举报
"Oracle-把触发器看透.docx"
Oracle触发器是数据库管理系统中用于自动化执行特定任务的编程组件,特别是在数据修改(DML)和数据库系统事件时。它们在Oracle数据库中扮演着关键角色,允许开发人员实现更复杂的业务逻辑和数据完整性规则。
8.1 触发器类型
1. DML触发器:DML(Data Manipulation Language)触发器响应INSERT、UPDATE和DELETE操作。Oracle提供两种类型的时间触发:BEFORE和AFTER,分别在DML操作执行前或执行后触发。此外,还有FOR EACH ROW和FOR STATEMENT选项,分别针对每一行或整个语句操作执行触发器。
2. 替代触发器:在Oracle 8中引入,主要用于处理对视图的操作,因为直接对多表视图执行DML操作是不被允许的。替代触发器允许在视图上模拟DML操作,并在幕后影响相关的基表。
3. 系统触发器:这些触发器在特定的数据库系统事件中触发,如数据库启动、关闭或其他系统级别的操作。系统触发器提供了一种监控和管理数据库整体状态的方式。
8.2 创建触发器
创建触发器涉及到编写一个包含PL/SQL代码的触发器定义,该定义会被存储在数据库中作为一个独立的对象。触发器不需用户显式调用,而是由特定的事件自动触发。触发器无法接收参数,其执行是隐式的。
触发器的组成部分包括:
1. 触发事件:如DML语句、DDL语句、数据库系统事件或用户事件,这些事件的发生会启动触发器。
2. 触发时间:触发器可以在事件发生之前(BEFORE)或之后(AFTER)执行,决定触发器的动作时机。
3. 触发操作:触发器执行的具体任务,通常是一个PL/SQL代码块,用于执行业务逻辑或验证。
4. 触发对象:触发器关联的表、视图、模式或数据库,当这些对象上发生匹配的事件时,触发器才会执行。
5. 触发条件:通过WHEN子句指定的逻辑表达式,只有当表达式为真时,触发器才会执行。
触发器的应用场景广泛,如实现复杂的业务规则,执行数据审计,确保数据一致性,以及在特定数据库事件发生时执行维护任务。然而,过度使用触发器可能导致性能问题,因此应谨慎设计和使用,以平衡功能性和效率。在数据库设计中,触发器通常作为最后的手段,当其他约束和规则无法满足需求时才考虑使用。
2022-07-02 上传
2022-05-07 上传
2022-06-22 上传
2023-05-26 上传
2021-10-10 上传
2022-07-13 上传
2022-11-27 上传
2022-05-04 上传
苦茶子12138
- 粉丝: 1w+
- 资源: 7万+
最新资源
- LUA5.33简化版支持库1.1版(lua5.fne)-易语言
- frontendman.github.io:Web开发
- FirstRepo:这是我们的第一个存储库
- apache-ivy-2-5-0.rar
- 手机脚本执行器安装包.zip
- 记录爬虫学习总结,对拉勾招聘信息、豆瓣电影短评、知乎用户画像等数据进行网络爬取实战练习,并基于爬取数据利用Pytho.zip
- dkpro-argumentation-minimal:DKPro Argumentation Mining - 带有用于演示目的的类型系统的“最小”库
- 离心泵水动力学噪声参数测控系统的设计与分析.rar
- jChat1毕业设计—(包含完整源码可运行)..zip
- FacEssential:FacEssential是PMMP的核心,它收集创建派系服务器所需的所有插件。 它是由Clouds#0667从头开始创建的
- 记录 Python 学习之路,Python3 简明教程入门,Python 爬虫相关实战和代码.zip
- 软件设计师真题16-18年.rar
- 指针操作支持库2.0版(PTlib.fne)-易语言
- estourando_baloes_JS:使用Java脚本创建游戏
- nn_api:在Windows上使用NVidia CUDA的神经网络API
- generate-mybatis-project:java持久层的mybatis实现代码生成工具