MySQL 查询触发器

一、查询MySQL触发器的步骤

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

mysql> SHOW TRIGGERS;

要获取所有触发器的列表,需要执行以下步骤:

第一步:打开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;  

或者

mysql> SHOW TRIGGERS FROM database_name LIKE pattern;   

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

mysql> SHOW TRIGGERS WHERE search_condition;    

或者

mysql> SHOW TRIGGERS FROM database_name WHERE search_condition;  

三、MySQL 查询触发器 示例

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

mysql> SHOW TRIGGERS FROM mysqltestdb WHERE table = 'employee';  

我们将得到如下输出:

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

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

  • Trigger:它是我们要创建的触发器的名称,并且在模式中必须是唯一的。
  • 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中查询触发器? 

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

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

1. 转到 Navigation 选项卡并单击包含 MySQL 服务器中所有可用数据库的Schema 菜单。

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

3. 单击表子菜单并选择您已在其上创建触发器的表。见下图:

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

热门文章

优秀文章