在数据库系统中,数据库中数据完整性是一项重要的课题。数据完整性是指为了防止数据库中存在不符合语义的数据,也就是防止数据库中存在不正确的数据。数据的完整性包括关系模型的实体完整性、参照完整性和用户定义完整性。这些完整性一般由SQL的DDL语句来实现。目前,已有多种方法来解决这个问题,从最基本的数据类型,到多种形式的约束条件,虽然都提出了数据完整性解决方案,但由于这些方法较为简单,不能解决比较复杂的数据完整性问题。而触发器(Trigger)作为一种高级的技术,可以轻松地解决任何有关保证数据完整性的问题。
1、触发器简介
触发器(Trigger)是用户定义在关系表上的一类由事件驱动的特殊过程。其一旦定义,任何用户对表的增、删、改操作均有服务器自动激活相应的触发器,在DBMS核心层进行集中的完整性控制。触发器类似于约束,但是比约束更加灵活,可可以实施比FOREIGN KEY约束、CHECK约束更为复杂的检查操作,具有更精细和更强大的数据控制能力。
触发器的类型可划分为四种:数据操纵语言(DML)触发器、替代(INSTEAD OF)触发器、数据定义语言(DLL)触发器和数据库事件触发器。其触发事件可分为3类:DML事件、DDL事件和数据库事件。
2、触发器工作原理
触发器是一种特殊类型的存储过程,它与表紧密联系在一起,在对表进行插入、删除和更新时,如该表(也称触发器表)有相应操作