Oracle数据库触发器类型深度解析(oracle触发器类型)
2023-06-13 09:15:14 时间
Oracle数据库触发器是为了处理表或表之间的数据关系,它们可以执行许多SQL任务。在Oracle中,触发器可分为三种类型:行触发器,表触发器和系统触发器。
#### 1 行触发器
行触发器只有当表中的行修改或新增时,才会激活。它是数据库限制,检查,验证和操作的有效工具。它们的作用范围限于当表行被更改或插入时执行的代码。对于行触发器,有三种不同的类型:before行触发器,after行触发器和instead of行触发器。以下是使用这三种行触发器的代码片段:
-- BEFORE/AFTER行触发器
CREATE OR REPLACE TRIGGER "bi_emp" BEFORE INSERT OR UPDATE ON emp
FOR EACH ROWDECLARE
-- trigger declarationBEGIN
-- trigger bodyEND bi_emp;
-- INSTEAD OF行触发器
CREATE OR REPLACE TRIGGER "bi_emp" INSTEAD OF INSERT OR UPDATE ON emp
FOR EACH ROWDECLARE
-- trigger declarationBEGIN
-- trigger bodyEND bi_emp;
行触发器可以执行一堆任务,如检查参数,引用表和过程等。它们还允许用户在修改或添加表时,使用现有的行来执行其他事件。
#### 2 表触发器
表触发器和行触发器类似,只有在表被更新,删除或插入时才会激活。它们可以看作以前触发器的一种扩展,可以访问每一行,以确保此活动满足其目的。它允许用户更新,删除或插入行。可以使用以下代码来创建表触发器:
CREATE OR REPLACE TRIGGER "bi_emp"
BEFORE INSERT OR UPDATE OR DELETE ON emp FOR EACH ROW
DECLARE -- trigger declaration
BEGIN -- trigger body
END bi_emp;
表触发器总是当表被更改时触发,不管该表的每一行是否被更改。它们可以使用UPDATE OF列名限定关键字,限定发生更改的列。
#### 3 系统触发器
系统触发器由Oracle在特定数据库事件发生时执行。它们以内部可以激活的形式管理数据库,而不必担心应用程序触发器。只有当数据库管理员激活时,系统触发器才会被执行。无论是调用存储过程,还是执行SQL脚本,都可以包含在系统触发器中。
下面的代码使用DBMS_JOB来创建系统触发器:
declare
jobno number; begin
dbms_job.submit( jobno, "begin
--Your Procedure/Script end;",
sysdate, "sysdate+7");
commit;end;
Oracle数据库触发器提供了一种灵活的机制,可以控制表和表之间的数据关系,而无需修改应用程序。它们可以在新增,删除,更新和其他数据库事件发生时执行,可以让管理员和用户更好地管理数据库。
我想要获取技术服务或软件
服务范围:MySQL、ORACLE、SQLSERVER、MongoDB、PostgreSQL 、程序问题
服务方式:远程服务、电话支持、现场服务,沟通指定方式服务
技术标签:数据恢复、安装配置、数据迁移、集群容灾、异常处理、其它问题
本站部分文章参考或来源于网络,如有侵权请联系站长。
数据库远程运维 Oracle数据库触发器类型深度解析(oracle触发器类型)
相关文章
- Oracle数据库:领先的数据库管理技术(oracle的数据库名)
- HPUX系统下安装Oracle数据库(hpux安装oracle)
- Oracle抽象灵感:随机汉字(oracle随机汉字)
- Oracle数据库导入简易指南(oracle库导入语句)
- 快速实现Oracle实例建立的全流程指南(建立oracle实例)
- 深入理解Oracle数据库组件(oracle数据库组件)
- 提升 Oracle 性能的好帮手:索引!(oracle索引的作用)
- 使用Oracle 触发器实现数据库自动化管理(oracle触发器类型)
- 使用Oracle触发器类型实现数据库智能管理(oracle触发器类型)
- 表分区的好处:Oracle数据库管理(oracle的表分区)
- 解决Oracle归档日志满的问题:快速清理和管理技巧(oracle归档日志满)
- 优化Oracle连接查询,提升数据库性能(oracle连接查询优化)
- C语言快速操作Oracle数据库(c 直接访问oracle)
- Mac系统使用Oracle,一站式解决方案(mac能装oracle嘛)
- 限制Oracle数据库中表的大小及约束限制(oracle中表有哪些)
- Oracle数据库什么是冷备份(oracle什么是冷备份)
- 计划分析Oracle数据库中优化执行计划的使用(oracle使用执行)
- Oracle中如何登录某个数据库(oracle中登录某个库)
- Oracle数据库管理指南中文版CHM手册(oracle中文版chm)
- Oracle中文全文索引高效搜索祕笈(oracle中文全文索引)
- Oracle中如何获取数据库的DBID(oracle中dbid)
- Oracle数据库两表联查求和(oracle两表求和)
- Oracle数据库中限制记录条数的方法(oracle中限制条数)
- 提升性能Oracle RAM的加倍优势(oracle ram)
- 数据库Oracle ARCH 数据库最佳的可用性和灵活性(oracle ARCH)