你可以在创建后修改现有的mysql触发器吗?

时间:2012-07-17 15:34:48

标签: mysql triggers

mysql我可以创建一个触发器,然后像这样显示有关它的信息:

mysql> show triggers like 'fooTrigger';

此命令提供的输出看起来非常像select语句,其中一行显示匹配的触发器。是否可以更新它显示的行上的列?

例如,一列名为Statement,它定义了触发器激活时会发生什么。是否可以更改Statement的{​​{1}}字段,以便触发器执行不同的操作?或者我需要fooTrigger并重新启动drop触发器吗?

3 个答案:

答案 0 :(得分:17)

从MySQL 5.5开始,您必须删除并重新创建触发器 如果不删除触发器,则无法更新Statement列。

文档:CREATE TRIGGER DROP TRIGGER

您还可以使用INFORMATION_SCHEMA表访问有关触发器的信息:

SELECT * FROM INFORMATION_SCHEMA.TRIGGERS

但是,由于这些表实际上是视图,因此您无法在其上使用UPDATE 与使用SHOW TRIGGERS相比,它只是访问和操作信息的一种更方便的方式。

文档:INFORMATION_SCHEMA.TRIGGERS

答案 1 :(得分:0)

在Windows操作系统上,您可能需要 Connector/Net Visual Studio Integration 来查看和编辑现有数据库对象。限制是您只能在For each row ...循环内edit trigger身体。

否则只有选项1掉落并重新创建触发器 但请确保在触发与触发器关联的表被锁定的触发器之前 并在重新创建触发器后解锁。

答案 2 :(得分:0)

正如@Jocelyn 提到的,你不能改变触发器。但是,如果您使用 MySql Workbench,它将允许您更改触发器。只需右键单击您的表名称,然后单击“更改表选项”,您就可以选择“触发器”选项并更改它。尽管您无法从查询中执行它。 表名 --> 改变表 --> 触发器。