MySQL 显示/列出触发器

17 Mar 2025 | 4 分钟阅读

当我们在许多数据库中包含各种表时,显示或列出触发器就变得非常有必要。有时,许多数据库中会有同名的触发器;在这种情况下,这个查询起着重要的作用。我们可以使用以下语句在数据库服务器中获取触发器信息。此语句返回所有数据库中的所有触发器。

获取所有触发器列表所需的步骤如下:

步骤 1: 打开 MySQL 命令提示符,并使用您在 MySQL 安装期间创建的密码登录到数据库服务器。成功连接后,我们可以执行所有 SQL 语句。

步骤 2: 接下来,使用以下命令选择特定的数据库。

步骤 3: 最后,执行 SHOW TRIGGERS 命令。

让我们通过下面的示例来理解它。假设我们有一个名为 "mysqltestdb" 的数据库,其中包含许多表。然后执行以下语句来列出 触发器

以下输出更清楚地解释了这一点。

MySQL Show/List Triggers

如果我们想在不切换的情况下显示或列出当前数据库中特定数据库的触发器信息,MySQL 允许我们使用 FROMIN 子句,后跟数据库名称。以下语句解释了这一点。

上面的语句也可以写成:

当我们执行上述语句时,我们将得到相同的结果。

使用模式匹配显示触发器

MySQL 还提供了一个 LIKE 子句选项,它使我们能够使用不同的模式匹配来过滤触发器名称。以下是 show trigger 命令使用模式匹配的语法:

如果我们想根据特定的搜索条件列出/显示触发器名称,我们可以使用 WHERE 子句,如下所示:

示例

假设我们想显示属于 employee 表的所有触发器,请执行以下语句:

我们将得到如下输出

MySQL Show/List Triggers

注意:请注意,执行 SHOW TRIGGERS 语句必须具有 SUPER 权限。

show trigger 语句在结果集中包含多个列。让我们详细解释每一列。

  • Trigger: 这是我们要创建的触发器的名称,并且在模式(schema)中必须是唯一的。
  • Event: 这是调用触发器的操作类型名称。它可以是 INSERT、UPDATE 或 DELETE 操作。
  • Table: 这是触发器所属的表的名称。
  • Statement: 这是触发器的主体,其中包含触发器激活时的逻辑。
  • Timing: 这是触发器的激活时间,可以是 BEFORE 或 AFTER。它表示触发器将在对表进行每次行修改之前或之后调用。
  • Created: 表示创建触发器的时间和日期。
  • sql_mode: 显示执行触发器时的 SQL_MODE。
  • Definer: 这是创建触发器的用户帐户的名称,应采用 'user_name'@'host_name' 格式。
  • character_set_client: 这是创建触发器时 character_set_client 系统变量的会话值。
  • collation_connection: 这是创建触发器时 character_set_client 系统变量的会话值。
  • Database Collation: 它确定比较和排序字符字符串的规则。它是触发器所属数据库的排序规则。

如何在 MySQL Workbench 中显示触发器?

它是一个可视化 GUI 工具,用于快速有效地创建数据库、表、索引、视图和存储过程。要使用此工具显示触发器,我们首先需要启动 MySQL Workbench 并使用我们之前创建的用户名和密码登录。我们将看到如下屏幕:

MySQL Show/List Triggers

现在执行以下步骤来显示触发器:

1. 转到导航选项卡,然后单击包含 MySQL 服务器中所有可用数据库的Schema 菜单

2. 选择数据库(例如,mysqltestdb),双击它,然后显示包含 Tables、Views、Functions 和 Stored Procedures 的子菜单。请参见下图。

MySQL Show/List Triggers

3. 单击Tables 子菜单并选择已创建触发器的表。请参见下图:

MySQL Show/List Triggers

4. 单击Triggers 子菜单,我们可以看到与所选表关联的所有触发器。请参见下图。

MySQL Show/List Triggers