概述

MySQL从5.0.2版本开始支持触发器。MySQL的触发器和存储过程一样,都是嵌入到MySQL服务器的一段程序。
触发器是由事件来触发某个操作,这些事件包括INSERT、UPDATE、DELETE事件。所谓事件就是指用户的动作或者触发某项行为。如果定义了触发程序,当数据库执行这些语句时候,就相当于事件发生了,就会自动激发触发器执行相应的操作。
当对数据表中的数据执行插入、更新和删除操作,需要自动执行一些数据库逻辑时,可以使用触发器来实现。

创建触发器

  1. CREATE TRIGGER 触发器名称
  2. {BEFORE|AFTER} {INSERT|UPDATE|DELETE} ON 表名
  3. FOR EACH ROW
  4. 触发器执行的语句块;

说明:

  • 表名:表示触发器监控的对象。
  • BEFORE|AFTER:表示触发的时间。BEFORE 表示在事件之前触发;AFTER 表示在事件之后触发。
  • INSERT|UPDATE|DELETE:表示触发的事件。
    • INSERT 表示插入记录时触发;
    • UPDATE 表示更新记录时触发;
    • DELETE 表示删除记录时触发。
  • 触发器执行的语句块:可以是单条SQL语句,也可以是由BEGIN…END结构组成的复合语句块。

    查看触发器

    查看触发器是查看数据库中已经存在的触发器的定义、状态和语法信息等
    1. SHOW TRIGGERS;
    1. SHOW CREATE TRIGGER 触发器名
    1. SELECT * FROM information_schema.TRIGGERS;

    删除触发器

    触发器也是数据库对象,删除触发器也用DROP语句
    1. DROP TRIGGER IF EXISTS 触发器名称;

    总结

    少用或者不用触发器,一切事务在应用层解决