Oracle数据库的不同触发器类型(oracle触发器类型)
Oracle 数据库是一款应用于企业级信息系统的广泛使用的数据库,支持不同变化条件的Oracle触发器,这些触发器可以自动地检查数据变化,以此控制相关动作的触发。Oracle 支持两种类型的触发器:表级别触发器和行级别触发器。
表级别触发器只关注整张表内容变化,当一个表上有一个dml(数据操作语句,指插入、更新或删除语句等),或者dcl(数据控制语言,指用于定义、控制和保护数据安全的操作语句)操作发生时,表级别触发器就会被自动触发,代码如下:
CREATE OR REPLACE TRIGGER emp_trg
BEFORE INSERT ON emp
FOR EACH ROWBEGIN
-- Do something...END;
行级别触发器和表级别触发器一样,也会被dml操作所触发,只要影响到触发器所执行表中的行时就可以触发。此外,行级别触发器还支持其他触发动作,比如触发器受影响的行被更新或者插入,可以表示为由新行引起的操作,还可以由删除的行引起的操作,类似如下的行级别触发器:
CREATE OR REPLACE TRIGGER pay_trg
AFTER INSERT OR UPDATE OF salary ON pay
FOR EACH ROWBEGIN
-- Do something...END;
触发器的使用不仅能把不同的动作、不同的操作搞定,还能把复杂的运用搞定,可以利用触发器实现定期检查,这就能使数据表每时每刻都能有效地维护数据完整性和一致性。值得一提的是,在应用触发器之前最好实施预测性测试,这很重要,因为一旦触发器不合法,就可能破坏数据库,或者使数据库添加了不需要的操作开销。