Oracle数据库中的触发器类型介绍(oracle触发器类型)
Oracle数据库中触发器是一种存储在数据库中的程序对象,通过它自动执行一系列动作。它能够检测用户对数据库中表或视图的更新活动,根据设置的条件去执行一组指令。Oracle的触发器类型主要包括以下三种:
一、行级触发器
行级触发器是Oracle数据库中最常用的触发器,也称作“Row-level Trigger”。它在某一行数据发生变化时发挥作用,如新增、更新或删除一行数据时,该触发器都会被触发,并使其执行指定的动作。
例如:创建一个行级触发器。
CREATE OR REPLACE TRIGGER testrow_trigger
AFTER INSERT OR UPDATE OR DELETE ON testrow
FOR EACH ROW
BEGIN
INSERT INTO test_log (field1,field2) VALUES(:new.field1,:old.field2);
END testrow_trigger;
二、表级触发器
表级触发器与行级触发器的区别在于,表级触发器是在一次更新操作针对一张表时,触发其中的指定操作。当一个表同时被更新多次时,表级触发器只会触发一次,最后一次操作完成后,表级触发器才会发生变化。
例如:创建一个表级触发器
CREATE OR REPLACE TRIGGER testtable_trigger
BEFORE INSERT OR UPDATE OR DELETE ON testtable
FOR EACH ROW
BEGIN
INSERT INTO test_log (field1,field2) VALUES(:new.field1,:old.field2);
END testtable_trigger;
三、标量触发器
标量触发器是Oracle 12c新增的触发器类型,允许在触发器操作前,先将值传给一个指定的变量,用于计算给触发器做判断。
例如:创建一个标量触发器
CREATE OR REPLACE TRIGGER testscalar_trigger
BEFORE UPDATE OF salary ON testscalar
FOR EACH ROW
DECLARE
tmp_salary number;
BEGIN
tmp_salary:= :old.salary :new.salary;
IF tmp_salary 500 THEN
DBMS_OUTPUT.PUT_LINE( 工资幅度不允许调整超过500元 );
END IF;
END testscalar_trigger;
总结
Oracle数据库中的触发器类型为行级触发器、表级触发器、标量触发器。行级触发器是 Oracle 数据库中最常用的触发器,它在某一行数据发生变化时发挥作用;表级触发器是在一次更新操作针对一张表时触发的指定动作;标量触发器是12c新增的触发器类型,它能为触发器操作前,先将值传给一个指定的变量,用于计算给触发器做判断。
我想要获取技术服务或软件
服务范围: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触发器类型)
- 转date从Long类型转换为Oracle Date类型(oracle日期long)
- 函数运用Oracle分组函数实现复杂统计功能(oracle分组)
- Oracle数据库查询语句如何使用取最大值函数?(oracle取最大值)
- Oracle数据库中行级锁的使用技巧(oracle行级锁)
- Oracle RAC:实现企业级高可用(oracle rac 书)
- Oracle数据库从内存转换到数字(oracle内存转数字)
- ES与Oracle数据同步技术研究(es oracle 同步)
- 云恩墨云与Oracle云改变线上应用架构(oracle 云和恩墨)
- Oracle查询不使用表锁的多数据源组合技术(oracle不锁表查询)
- Oracle账号注册即可免费下载(oracle 下载 账号)
- Oracle EXPPD实现数据快速安全导出(oracle exppd)
- Oracle EBS跨越前景可期(oracle ebs前景)
- Oracle 数据分析利器散点图的使用方法(oracle.散点图)