触发器(TRIGGER)定义当某些与数据库有关的事件发生时,数据库应该采取的操作。通过触发器机制,用户可以定义、删除和修改触发器。
DM 自动管理和运行这些触发器,从而体现系统的主动性,方便用户使用。
触发器是一种特殊的存储过程,它在创建后就存储在数据库中。触发器的特殊性在于它是建立在某个具体的表或视图之上的,或者是建立在各种事件前后的,而且是自动激发执行的,如果用户在这个表上执行了某个 DML 操作(INSERT、DELETE、UPDATE),触发器就被激发执行。
触发器常用于自动完成一些数据库的维护工作。例如,触发器可以具有以下功能:
- 可以对表自动进行复杂的安全性、完整性检查;
- 可以在对表进行 DML 操作之前或者之后进行其它处理;
- 进行审计,可以对表上的操作进行跟踪;
- 实现不同节点间数据库的同步更新。
触发器与存储模块类似,都是在服务器上保存并执行的一段 DMSQL 程序语句。不同的是,存储模块必须被显式地调用执行,而触发器是在相关的事件发生时由服务器自动隐式地激发。触发器是激发它们的语句的一个组成部分,即直到一个语句激发的所有触发器执行完成之后该语句才结束,而其中任何一个触发器执行的失败都将导致该语句的失败,触发器所做的任何工作都属于激发该触发器的语句。
触发器为用户提供了一种自己扩展数据库功能的方法。可以使用触发器来扩充引用完整性,实施附加的安全性或增强可用的审计选项。关于触发器应用的例子有:
- 利用触发器实现表约束机制(如:PRIMARY KEY、FOREIGN KEY、CHECK 等)无法实现的复杂的引用完整性;
- 利用