掌握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触发器分为行触发器、语句触发器,同时使用触发器也可以分为简单触发器、更新触发器、级联触发器等,它们可以极大的提高数据维护的灵活性和开发者的效率。