掌握Oracle触发器的分类与使用(oracle触发器类型)

Oracle触发器是利用了数据库的观察机制的一类特殊函数,它可在我们做了特定的操作后进行自动化操作,主要用于表内或跨表的数据变动时,能够极大的提高数据维护的灵活性和开发者的效率。那么下面我们就来分析Oracle触发器的分类与使用。

Oracle触发器有两种类型,一种是行触发器,它会根据表上多行记录来进行触发;另一种是语句触发器,它是根据执行SQL DML语句来进行触发的,这其中包括INSERT、UPDATE、DELETE语句等。

Oracle触发器的使用方法可分为以下几种类型:

1.简单触发器:每次触发后执行一次DML语句,这种触发器最适合完成简单的数据控制任务,例如禁止用户向表插入某些字段保留的特殊值。例如:

CREATE TRIGGER insert_trigg

BEFORE INSERT ON table_name

FOR EACH ROW

BEGIN

IF :new.col_name1 = ‘value1’ OR :new.col_name2 = ‘value2’ THEN

RAISE_APPLICATION_EXCEPTION;

END IF;

END;

2.更新触发器:每次触发后执行两个或多个DML语句,这种触发器主要用于在更改关联表记录时保持一致性,例如当某记录删除时,让其相应的参考关联记录也同明被删除。例如:

CREATE TRIGGER delete_trigg

BEFORE DELETE ON master_table

FOR EACH ROW

BEGIN

DELETE FROM subordinate_table

WHERE master_field = :OLD.master_field;

END;

3.级联触发器:这种触发器不会直接对表进行操作,而是操作另一个触发器,可以定义该触发器操作多个表。例如:

CREATE TRIGGER check_trigg

BEFORE INSERT ON table_name

FOR EACH ROW

BEGIN

IF :NEW.col_name = ‘value3’ THEN

EXECUTE IMMEDIATE ‘

BEGIN

INSERT_TRIGG;

DELETE_TRIGG;

END;

‘;

END IF;

END;

综合以上内容,可以看出Oracle触发器分为行触发器、语句触发器,同时使用触发器也可以分为简单触发器、更新触发器、级联触发器等,它们可以极大的提高数据维护的灵活性和开发者的效率。


数据运维技术 » 掌握Oracle触发器的分类与使用(oracle触发器类型)