无涯教程可以使用 DROP TRIGGER 语句在MySQL中删除触发器。从表中删除触发器时,必须非常小心。因为一旦删除触发器,便无法恢复。如果找不到触发器,则DROP TRIGGER语句将引发错误。
可以使用具有以下语法的DROP TRIGGER语句从数据库中删除现有触发器:
DROP TRIGGER [IF EXISTS] [schema_name.]trigger_name;
删除触发器语法中使用的参数说明如下:
链接:https://www.learnfk.comhttps://www.learnfk.com/mysql/mysql-drop-trigger.html
来源:LearnFk无涯教程网
参数 | 说明 |
---|---|
trigger_name | 这是要从数据库服务器中删除的触发器的名称。这是必填参数。 |
Schema_name | 这是触发器所属的数据库名称。如果无涯教程跳过此参数,该语句将从当前数据库中删除触发器。 |
IF_EXISTS | 这是一个可选参数,只有在数据库服务器上存在触发器时,才有条件地删除触发器。 |
注意,在为与触发器关联的表执行DROP TRIGGER语句之前,必须具有TRIGGER特权。同样,删除表将自动删除与该表关联的所有触发器。
让无涯教程看一下如何通过示例删除与表关联的触发器。因此,首先,将使用以下语句在所选数据库中显示所有触发器:
mysql> SHOW TRIGGERS IN employeedb;
执行该语句后,可以看到有两个触发器,分别名为 before_update_salaries 和 sales_info_before_update 。见下图:
如果要删除 before_update_salaries 触发器,请执行以下语句:
mysql> DROP TRIGGER employeedb.before_update_salaries;
它将成功从数据库中删除触发器。如果无涯教程再次执行上述语句,它将返回一条错误消息。查看输出:
如果使用If存在子句再次执行上述语句,则会返回警告消息而不是产生错误。查看输出:
mysql> DROP TRIGGER IF EXISTS employeedb.before_update_salaries;
当使用IF EXISTS时,无涯教程可以执行 SHOW WARNING 语句,为不存在的触发器生成 NOTE 。查看输出:
祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)