程序员社区

MySQL系列教程 --- 94、MySQL 删除触发器

我们可以使用DROP TRIGGER语句删除/删除/移除 MySQL 中的触发器。从表中删除触发器时必须非常小心。因为一旦我们删除了触发器,它就无法恢复。如果未找到触发器,则 DROP TRIGGER 语句将引发错误。

MySQL 允许我们主要通过两种方式删除/删除/移除触发器:

  1. MySQL命令行客户端
  2. MySQL 工作台

MySQL命令行客户端

我们可以使用具有以下语法的 DROP TRIGGER 语句从数据库中删除现有触发器:

DROP TRIGGER [IF EXISTS] [schema_name.]trigger_name;  

参数说明

drop trigger语法中使用的参数解释如下:

参数 说明
Trigger_name 它是我们要从数据库服务器中删除的触发器的名称。它是必需的参数。
Schema_name 它是触发器所属的数据库名称。如果我们跳过此参数,该语句将从当前数据库中删除触发器。
IF_EXISTS 它是一个可选参数,仅当触发器存在于数据库服务器上时才会有条件地删除它们。

如果我们删除不存在的触发器,我们会得到一个错误。但是,如果我们指定了 IF EXISTS 子句,MySQL会给出NOTE而不是错误。

需要注意的是,在对与触发器关联的表执行 DROP TRIGGER 语句之前,我们必须具有 TRIGGER 权限。此外,删除表将自动删除与该表关联的所有触发器。

MySQL DROP 触发器示例

让我们通过一个例子来看看如何删除与表关联的触发器。因此,首先,我们将使用以下语句显示所选数据库中可用的所有触发器

mysql> SHOW TRIGGERS IN employeedb;  

执行语句后,我们可以看到有两个触发器名为before_update_salariessales_info_before_update。见下图:

file

如果我们要删除before_update_salaries触发器,请执行以下语句:

mysql> DROP TRIGGER employeedb.before_update_salaries;  

它将成功地从数据库中删除触发器。如果我们再次执行上面的语句,它会返回一个错误信息。查看输出:

file

如果我们使用IF EXISTS子句再次执行上述语句,它将返回警告消息而不是产生错误。查看输出:

mysql> DROP TRIGGER IF EXISTS employeedb.before_update_salaries;  

file

当使用 IF EXISTS 时,我们可以执行SHOW WARNING语句,该语句为不存在的触发器生成注释。查看输出:

file

赞(0) 打赏
未经允许不得转载:IDEA激活码 » MySQL系列教程 --- 94、MySQL 删除触发器

一个分享Java & Python知识的社区