深入理解Oracle数据库中的触发器类型(oracle触发器类型)

Oracle数据库中的触发器类型是针对数据库表中的特定动作执行特定操作的一种功能,它们可以为表中的插入、更新和删除操作自动触发动作。将它们的使用分成三种类型,行触发器,表触发器和级联触发器。这些触发器类型的原理及其结构及它们的使用也有所不同,下面将对这三种触发器类型进行详细介绍。

第一种类型是行触发器。行触发器用于在插入、更新或删除表中的某一行时自动触发动作。它在表定义的时候就应该被定义。行触发器的定义一般很简单,可以用如下代码来定义:

CREATE TRIGGER tri_payroll_update

BEFORE INSERT OR UPDATE

ON payroll FOR EACH ROW

DECLARE

BEGIN

:new.paygrade := :old.paygrade;

END;

这段代码会在用户执行插入或更新payroll表的行时生效,它的作用是将新的行的支薪等级字段设置为与其相配的旧行的支薪等级字段。

第二种触发器类型是表触发器。它是在整个表操作上执行动作。它一般被定义在增加、更新或删除表中任何一行时,将会被触发执行,下面是它的定义:

CREATE TRIGGER tri_payroll_total

AFTER DELETE OR INSERT OR UPDATE

ON payroll

DECLARE

BEGIN

UPDATE payroll_total SET

tot_salary = (SELECT SUM(salary)

FROM payroll);

END;

它的功能是在用户对payroll表进行删除、插入或更新行时,自动更新记录汇总表中统计各数据行部门工资总和。

最后一种触发器类型是级联触发器。它可以将表间的动作直接影响,用户操作一张表时,将会自动引起另一张表的动作。它也可以在定义表时定义,下面是其定义:

CREATE TRIGGER tri_emp_delete

AFTER DELETE ON employee

FOR EACH ROW

DECLARE

BEGIN

DELETE FROM employee_stipends

WHERE emp_id = :old.emp_id ;

END;

它的作用是在删除员工表中某一行时,同时删除员工津贴表中的相关记录。

综上所述,Oracle 数据库中的触发器类型有三种,它们是行触发器,表触发器和级联触发器,它们的使用有所不同,而且它们的作用也十分不同,它们可以帮助我们对表中的数据进行更好的管理。


数据运维技术 » 深入理解Oracle数据库中的触发器类型(oracle触发器类型)