13.7.5.38 SHOW TRIGGERS 声明

SHOW TRIGGERS
    [{FROM | IN} db_name]
    [LIKE 'pattern' | WHERE expr]

SHOW TRIGGERS列出了当前为数据库中的 table 定义的触发器(默认数据库,除非给出FROM子句)。该语句仅返回具有TRIGGER特权的数据库和 table 的结果。 LIKE子句(如果存在)指示要匹配的 table 名(不是触发器名),并使该语句显示那些 table 的触发器。可以提供WHERE子句以使用更一般的条件选择行,如第 24.35 节,“ SHOW 语句的扩展”中所述。

对于第 23.3 节“使用触发器”中定义的ins_sum触发器,SHOW TRIGGERS的输出如下所示:

mysql> SHOW TRIGGERS LIKE 'acc%'\G
*************************** 1. row ***************************
             Trigger: ins_sum
               Event: INSERT
               Table: account
           Statement: SET @sum = @sum + NEW.amount
              Timing: BEFORE
             Created: 2018-08-08 10:10:12.61
            sql_mode: ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,
                      NO_ZERO_IN_DATE,NO_ZERO_DATE,
                      ERROR_FOR_DIVISION_BY_ZERO,
                      NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
             Definer: me@localhost
character_set_client: utf8
collation_connection: utf8_general_ci
  Database Collation: latin1_swedish_ci

SHOW TRIGGERS输出包含以下列:

  • Trigger

触发器的名称。

  • Event

触发事件。这是触发触发器的关联 table 上的操作类型。值为INSERT(已插入行),DELETE(已删除行)或UPDATE(已修改行)。

  • Table

为其定义触发器的 table。

  • Statement

扳机体;也就是说,触发器激活时执行的语句。

  • Timing

触发器是在触发事件之前还是之后激活。该值为BEFOREAFTER

  • Created

创建触发器的日期和时间。对于在 MySQL 5.7.2 或更高版本中创建的触发器,这是TIMESTAMP(2)值(分数的百分之一秒),对于在 5.7.2 之前创建的触发器,这是NULL

  • sql_mode

创建触发器时有效的 SQL 模式,在该模式下执行触发器。有关允许的值,请参见第 5.1.10 节“服务器 SQL 模式”

  • Definer

创建触发器的用户的帐户,格式为'user_name'@'host_name'

  • character_set_client

创建触发器时,character_set_client系统变量的会话值。

  • collation_connection

创建触发器时,collation_connection系统变量的会话值。

  • Database Collation

与触发器关联的数据库的整理。

INFORMATION_SCHEMA TRIGGERStable 中也提供了触发信息。参见第 24.29 节“ INFORMATION_SCHEMA TRIGGERStable”