触发器(Trigger)是一个特殊的存储过程。在对表进行INSERT、DELETE或UPDATE操作时,可以通过定义一些触发器使数据库服务器自动调用存储过程或SQL语句。触发器通过维持不同表中逻辑上相关数据的一致性,保持数据的相关完整性。
触发器也可用于强制引用完整性,以便在多个表中添加、更新或删除行时,保留在这些表之间所定义的关系。然而,强制引用完整性的最好方法是在相关表中定义主键和外键约束。如果使用数据库关系图,则可以在表之间创建关系以自动创建外键约束。
触发器有时也被称作事件-条件-动作规则(Event-Condition-Action Role,ECA规则)。
一个触发器由以下三部分组成:
(1)事件:指对数据库的插入、删除、修改等操作。当数据库程序员声明的事件发生时,触发器开始工作。
(2)条件:当触发器被事件激活时,不是立即执行,而是首先由触发器测试触发条件。如果条件成立,则触发器执行相应的动作,否则触发器不做任何事情。
(3)动作:如果触发器满足预定义的条件,那么与该触发器相关联的动作(Action)由数据库管理系统执行。这些动作可以阻止事件发生(即撤销事件,例如删除刚才插入的元组),可以是一系列对于数据库的操作,甚至可以与是与触发事件毫无关联的其他操作。