当无涯教程有许多包含各种表的数据库时,非常需要show或list触发器。有时,在许多数据库中,使用相同的触发器名称。在这种情况下,此查询起着重要的作用。可以使用以下语句在数据库服务器中获取触发信息。该语句返回所有数据库中的所有触发器:
mysql> SHOW TRIGGERS;
以下步骤是获取所有触发器列表的必要步骤:
步骤1:打开MySQL命令提示符,并使用在MySQL的安装。成功建立连接后,可以执行所有SQL语句。
步骤2:接下来,使用下面的命令选择特定的数据库:
mysql> USE database_name;
步骤3:最后,执行SHOW TRIGGERS命令。
让无涯教程用下面给出的例子来理解它。假设有一个数据库名称" mysqltestdb" ,其中包含许多表。然后执行以下语句以列出触发:
mysql> USE mysqltestdb; mysql>SHOW TRIGGERS;
以下输出对此进行了更清晰的说明:

如果要在不切换的情况下从当前数据库显示或列出特定数据库中的触发信息,MySQL允许使用 FROM 或 IN 子句,后跟数据库名称。以下语句对其进行了更清晰的说明:
mysql> SHOW TABLES IN database_name;
上面的语句也可以写成:
mysql> SHOW TABLES FROM database_name;
当无涯教程执行以上语句时,将得到相同的结果。
使用模式匹配显示触发器
MySQL还提供了一个 LIKE 子句选项,使能够使用不同的模式匹配来过滤触发器名称。以下是将模式匹配与show trigger命令一起使用的语法:
mysql> SHOW TRIGGERS LIKE pattern; OR, mysql> SHOW TRIGGERS FROM database_name LIKE pattern;
如果要根据特定的搜索条件列出/显示触发器名称,可以使用WHERE子句,如下所示:
mysql> SHOW TRIGGERS WHERE search_condition; OR, mysql> SHOW TRIGGERS FROM database_name WHERE search_condition;
假设要显示属于 employee 表的所有触发器,请执行以下语句:
mysql> SHOW TRIGGERS FROM mysqltestdb WHERE table = employee;
无涯教程将获得如下输出:

NOTE: 值得注意的是,无涯教程必须具有超级特权来执行Show Triggers语句。
show触发器语句在结果集中包含几列。让无涯教程详细解释每一列。
- Tigger - 这是要创建的触发器的名称,并且在架构中必须唯一。
- Event - 这是调用触发器的操作名称的类型。它可以是INSERT,UPDATE或DELETE操作。
- Table - 这是触发器所属的表的名称。
- Statement - 是触发器的主体,其中包含触发器激活时的逻辑。
- Timing - 这是触发器的激活时间,可以是之前还是之后。它表示将在表的每一行修改之前或之后调用触发器。
- Created - 表示触发器创建的时间和日期。
- sql_mode - 执行触发器时显示SQL_MODE。
- Definer - 这是创建触发器的用户帐户的名称,应位于"用户名" @"主机名"格式。
- character_set_client - 是创建触发器时character_set_client系统变量的会话值。
- collation_connection - 创建触发器时,它是character_set_client系统变量的会话值。
- Database Collation - 它确定比较和排序字符串的规则。这是触发器所属的数据库的排序规则。