MySQL 删除触发器

MySQL 删除触发器

我们可以使用DROP TRIGGER语句在MySQL中删除触发器。在删除表中的触发器时,必须非常小心。因为一旦删除了触发器,就无法恢复。如果找不到触发器,则DROP TRIGGER语句会抛出错误。

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

  1. MySQL命令行客户端
  2. MySQL Workbench

MySQL命令行客户端

我们可以使用以下语法将现有触发器从数据库中删除:

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

参数说明

下拉触发器语法中使用的参数解释如下:

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

如果我们删除不存在的触发器,将会出现错误。然而,如果我们已经指定了IF EXISTS子句,MySQL会在错误之外给出一个 NOTE

需要注意的是,在执行DROP TRIGGER语句之前,我们必须具备TRIGGER权限,并且这个触发器必须与表相关联。另外,删除一个表会自动删除与该表相关联的所有触发器。

MySQL DROP Trigger示例

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

mysql> SHOW TRIGGERS IN employeedb;

执行语句后,我们可以看到有两个触发器的名字分别为 before_update_salariessales_info_before_update 。请参考下图:

MySQL 删除触发器

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

mysql> DROP TRIGGER employeedb.before_update_salaries;

它将成功从数据库中删除触发器。如果我们再次执行上述语句,它将返回一个错误消息。请参阅输出:

MySQL 删除触发器

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

mysql> DROP TRIGGER IF EXISTS employeedb.before_update_salaries;

MySQL 删除触发器

我们可以执行生成一个 注意 信息的 SHOW WARNING 语句,但只有在使用IF EXISTS时才会生成该信息。查看输出结果:

MySQL 删除触发器

如何在MySQL Workbench中删除触发器?

要在workbench中创建一个在更新后触发的触发器, 我们首先 启动MySQL Workbench 并使用用户名和密码登录。我们将获得如下的用户界面:

MySQL 删除触发器

现在按以下步骤删除或销毁与表关联的触发器:

1. 转到 导航栏 选项卡,然后单击 模式 菜单。它将显示MySQL数据库服务器中可用的所有数据库。

MySQL 删除触发器

2. 选择数据库(例如, mystudentdb )。然后,双击所选模式。它会显示包含表、视图、函数和存储过程的 子菜单 。请查看下面的屏幕截图。

MySQL 删除触发器

3. 展开 子菜单并选择一个关联了触发器的表。再次展开选中的 表 – > 触发器;我们将得到以下图片:

MySQL 删除触发器

4. 现在,右键单击所选表格,选择 ** 修改表 ** 选项,如下所示:

MySQL 删除触发器

5. 现在,点击前一节所示的 触发器 选项卡。 红色矩形框 内。您会注意到有一个 (+) 和 (-)图标按钮 ,用于添加或删除触发器:

MySQL 删除触发器

6. 现在,点击 (-) 按钮 将永久地删除与该表格关联的触发器。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程