触发器在MySQL数据库中的应用
2014-10-21徐安令

摘 要:触发器能够解决数据库复杂的业务规则或要求,从而保证数据库的完整性、正确性和一致性。本文介绍了触发器的概念、用途、创建、使用等,旨在帮助数据库编程人员正确使用触发器。
关键词:触发器;trigger;MySQL
中图分类号:TP309
1 触发器的概念
触发器是一个被指定关联到一个表的数据库对象,当对一个表的特定事件出现时,它将被激活。触发器可以看作是特殊的存储过程,不同的是,执行存储过程要使用call语句来调用,只要当一个预定义的事件发生的时候,触发主体动作就会被MySQL自动调用。具体而言,触发器就是MySQL响应insert、update和delete语句而自动执行的一条或一组MySQL语句。
2 触发器的用途
(1)它可用于检查插入到表中的值。例如:每当增加一个学生到数据库的学生基本信息表时,都检查其电话号码的格式是否正确。(2)它能对更新涉及的值进行计算。例如:每当客户订购一个产品时,都从产品库存表中将库存量减去订购的数量。(3)用于创建审计跟踪,也就是可使用触发器把表的更改状态以及之前和之后的状态记录到另外一张数据表中。正确的使用触发器,这能保障数据库中数据的完整性正确性,以及多个表之间数据的一致性。
3 触发器的创建
语法格式:Create [DEFINER={user|CURRENT_USER}] TRIGGER t_name t_time t_event ON tbl_name FOR EACH ROW t_body
其说明如下:DEFINER从句:指定当触发器被触发时满足事件执行权限的安全上下文,为可选项。t_name:触发器的名称,触发器在当前数据库中必须具有唯一的名称。t_time:触发器被触发的时机,有before和after两个选项。t_event:触发事件,包括insert、update和delete,指定激活触发器的语句种类。……
