Oracle触发器的种类与功能(oracle触发器类型)
Oracle触发器是指数据库管理系统(DBMS)触发器,其作用是,当会话或数据库操作对数据库表中的记录发生更改时,响应数据库语句的执行。 Oracle触发器的种类和功能大致可以分为两类,即行级触发器和表级触发器。
行级触发器是由一组关联的SQL语句构成的PAL,该PAL将在指定的时刻、操作或事件激活,以对表中在某行进行变更,行触发器执行不会影响当前行或其他行,而且可以更新同一表中的其他行。 例如:当修改”Employees”表中某个员工的职位时,将自动更新该员工所在部门的经理职位。 可以使用以下语法创建行触发器:
CREATE OR REPLACE TRIGGER trigger_name
AFTER UPDATE OF job ON employees
FOR EACH ROW
BEGIN
UPDATE departments
SET manager=: new.job
WHERE dept_no=:old.dept_no;
END;
表级触发器及其功能相对复杂,它基本上可以在表上定义,当在表上发生插入、更新或删除操作时就会触发,而且可以更新多个表中的记录。 例如:当在”Employees”表中修改某个员工的职位时,触发器将更新该员工所在部门的经理职位并向”Jobs”表中添加一条记录。可以使用以下语法创建表触发器:
CREATE OR REPLACE TRIGGER trigger_name
BEFORE UPDATE OR DELETE ON employees
BEGIN
UPDATE departments
SET manager=: new.job
WHERE dept_no=:old.dept_no;
INSERT INTO jobs (job_title, department_id)
VALUES(:new.job, :old.dept_no);
END;
本文初步介绍了Oracle触发器的种类和功能,即行级触发器和表级触发器。行级触发器用于在指定的时刻、操作或事件激活,以对表中在某行进行变更,而表级触发器可以更新多个表中的记录。可以使用创建相应触发器的相关代码来实现触发器的功能。