18

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

mysql> show triggers like 'fooTrigger';

这个命令给出的输出看起来很像一个 select 语句,其中一行显示了匹配的触发器。是否可以更新它显示给我的行上的列?

例如,一列名为Statement,它定义了触发器被激活时会发生什么。是否可以更改Statement字段,fooTrigger以便触发器执行不同的操作?还是我需要drop重新create触发?

4

3 回答 3

24

从 MySQL 5.5 开始,您必须删除并重新创建触发器。在不删除触发器的情况下
无法更新列。Statement

文档:CREATE TRIGGER DROP TRIGGER

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

SELECT * FROM INFORMATION_SCHEMA.TRIGGERS

但是,由于这些表实际上是视图,因此您不能UPDATE在它们上使用。
这只是比使用 SHOW TRIGGERS 更方便的访问和操作信息的方式。

文档:INFORMATION_SCHEMA.TRIGGERS

于 2012-07-17T16:13:13.343 回答
0

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

否则,唯一的选项是删除并重新创建触发器。
但请确保在删除触发器之前,与触发器关联的表已锁定,
并在重新创建触发器后解锁。

于 2012-07-17T16:19:38.480 回答
0

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

于 2021-06-23T00:24:59.663 回答