1 触发器
触发器是一种特殊的与表事件相关的存储过程,其执行不是由程序调用,也不是手工启动,而是由事件触发。触发器经常用于加强数据的完整性约束和业务规则等。也可以用于强制引用完整性,以便在多个表中添加、更新或删除行时,保留在这些表之间所定义的关系。MySQL中触发器的完整语法结构如下:
CREATE[DEFINER = user]TRIGGER [IF NOT EXISTS] trigger_nametrigger_time trigger_eventON tbl_name FOR EACH ROW[trigger_order]trigger_bodytrigger_time: { BEFORE | AFTER }trigger_event: { INSERT | UPDATE | DELETE }trigger_order: { FOLLOWS | PRECEDES } other_trigger_name
- trigger_time: 指示触发器触发时间。before是指在执行触发语句之前激发触发器;after是指在执行触发语句之后激发触发器。
- trigger_event: 指示触发事件。delete是指每当一个delete语句从表中删除一行时激活触发器;insert是指每当一个insert语句向表中插入一行激活触发器;update是指每当update语句修改指定列时激活触发器。
- trigger_order: 这是一个可选参数。如果定义了多个具有相同触发事件和触法时间的触发器时,默认触发顺序与触发器的创建顺序一致。其中follows是指当前创建的触发器在现有触发器之后激活;precedes是指当前创建的触发器在现有触发器之前激活。
参考资料
- https://zhuanlan.zhihu.com/p/158670286