掌握Oracle触发器类型的全部知识(oracle触发器类型)


Oracle触发器是由触发器文本和指定的触发器类型组成的一种对象。对于Oracle触发器,它有三种类型,如下:

1. 表触发器

表触发器(table trigger)是在定义在表定义上的触发器,当发生特定操作时可能会触发。当特定的表DML或DDL操作发生时,它将执行指定的触发器代码,例如INSERT、UPDATE、DELETE和ALTER TABLE等。

例子:

CREATE OR REPLACE TRIGGER my_trigger

BEFORE INSERT

ON tablename

FOR EACH ROW

DECLARE

BEGIN

END;

2. 行触发器

行触发器(row trigger)是定义在行级的触发器,它在每行发生的操作上触发,并且每行都可以响应不同的反应。当特定的表行或行组受到DML变动时,它将执行指定的触发器代码,例如INSERT,UPDATE,DELETE。

例子:

CREATE OR REPLACE TRIGGER row_trigger

AFTER INSERT OR UPDATE OR DELETE

ON tablename

FOR EACH ROW

BEGIN

END;

3. 更新触发器

更新触发器(update trigger)是一种特殊的行触发器,它只会在特定的列发生变动时才会被触发。它只在指定列发生INSERT,UPDATE操作时才会被触发,用于跟踪表中某些列的变动,可以帮助我们跟踪当前表中某些更新操作。

例子:

CREATE OR REPLACE TRIGGER update_trigger

AFTER UPDATE OF column1,column2,column3

ON tablename

FOR EACH ROW

BEGIN

END;

总结

以上就是Oracle触发器的全部三种类型,它们不仅能帮助我们跟踪表中的更新操作,而且还可以在特定的DDL操作发生时执行指定的操作,非常有用。Oracle触发器可用于实施复杂的业务逻辑,但必须正确规划触发器的设计,特别是对循环触发器行为的处理,以免造成性能问题。