Oracle数据库中触发器类型简介(oracle触发器类型)
Oracle数据库是大型企业日常工作中应用最为广泛的数据库,它拥有完善的数据库对象系统,其中触发器类型就是其中常用的数据库对象。触发器是指当满足特定的条件时,由数据库系统在系统层次上进行自动操作的一类程序。
Oracle数据库中触发器以其耐用且功能强大的特点,被广泛应用于企业系统中,其中它可以分为三种主要类型:
一、Row Level Triggers:
当数据库表中有行数据发生变化时(添加,更新或者删除),会触发该类型触发器。它也可以将变化后的数据,作为参数传递给触发器程序进行操作,例如:
CREATE OR REPLACE TRIGGER test_trigger
BEFORE UPDATE ON test_table FOR EACH ROW
DECLARE
temp_col1 VARCHAR2(50);
BEGIN
SELECT col1 INTO temp_col1 FROM test_table WHERE rowid = :new.rowid;
IF temp_col1 != :new.col1 THEN
do something here
END IF;
END;
二、Statement Level Triggers:
当对数据库表进行添加,更新或删除操作时,会触发该类型触发器,主要特点是,可以将变化后的所有行数据作为一个集合传递给触发器。例如:
CREATE OR REPLACE TRIGGER test_trigger
BEFORE UPDATE OR DELETE ON test_table
BEGIN
FOR temp_record IN (SELECT * FROM test_table WHERE col1=:old.col1)
LOOP
do something here
END LOOP;
END;
三、Compound Triggers:
这类触发器由三部分组成,包括Before Statement部分、Before Each Row部分和After Statement部分。前两部分行为相同,只是参数传递模式不同,都可以将变化后的数据作为参数传递,而After Statement部分针对更新或删除操作,可以将变化前后的所有行数据作为一个集合传递。例如:
CREATE OR REPLACE TRIGGER test_trigger
FOR UPDATE OR DELETE ON test_table
COMPOUND TRIGGER
BEFORE STATEMENT IS
temp_col1 VARCHAR2(50);
BEGIN
SELECT col1 INTO temp_col1 FROM test_table WHERE rowid = :old.rowid;
END BEFORE STATEMENT;
BEFORE EACH ROW IS
BEGIN
IF temp_col1 != :new.col1 THEN
do something here
END IF;
END BEFORE EACH ROW;
AFTER STATEMENT IS
BEGIN
FOR temp_record IN (SELECT * FROM test_table WHERE col1=:old.col1)
LOOP
do something here
END LOOP;
END AFTER STATEMENT;
END test_trigger;
触发器有三种类型,Row Level Triggers、Statement Level Triggers、Compound Triggers,它们都可以进行自动操作以及传递变化后的数据,是企业工作实施时不可缺少的重要用途。
我想要获取技术服务或软件
服务范围:MySQL、ORACLE、SQLSERVER、MongoDB、PostgreSQL 、程序问题
服务方式:远程服务、电话支持、现场服务,沟通指定方式服务
技术标签:数据恢复、安装配置、数据迁移、集群容灾、异常处理、其它问题
本站部分文章参考或来源于网络,如有侵权请联系站长。
数据库远程运维 Oracle数据库中触发器类型简介(oracle触发器类型)
相关文章
- Oracle大学让上海瞩目!(上海oracle大学)
- Oracle 手工快照:提升数据安全保障(oracle手工快照)
- Oracle数据库碎片整理指南(oracle的碎片整理)
- 简洁明了:Oracle启动与关闭操作(oracle启动关闭)
- 深入浅出 Oracle 触发器类型(oracle触发器类型)
- 利用Oracle触发器实现数据安全管理(oracle触发器类型)
- 简单深入Oracle触发器类型探索(oracle触发器类型)
- 精通 Oracle 触发器:细节与类型一目了然(oracle触发器类型)
- 精通Oracle触发器类型的路漫漫(oracle触发器类型)
- Oracle数据库管理员招募精英:Oracle数据库管理员职位开放!(oracle数据库招聘)
- 了解Oracle中触发器的类型(oracle触发器类型)
- Oracle官方线上文档:完善您的技能(oracle在线官方文档)
- Oracle无需监听即可连接远程数据库(oracle免监听)
- Oracle数据库企业级服务的完美体现(oc_oracle)
- 以ER图为基础,提高Oracle数据库性能(er图oracle)
- 查询排查Oracle数据库性能优化器慢查询分析(oracle 优化器慢)
- 解除Oracle数据库中的LCK进程(oracle中lck进程)
- Oracle数据库实现易用性与高效性(oracle 中.)
- Oracle数据库配置之获取主机用户名(oracle主机用户名)
- Oracle 加入 Ethereum 20 开启全新局面(oracle eth2)
- Oracle 21c安装指南详解步骤part1(oracle 21c安装)