我mysql
可以创建一个触发器,然后像这样显示有关它的信息:
mysql> show triggers like 'fooTrigger';
这个命令给出的输出看起来很像一个 select 语句,其中一行显示了匹配的触发器。是否可以更新它显示给我的行上的列?
例如,一列名为Statement
,它定义了触发器被激活时会发生什么。是否可以更改Statement
字段,fooTrigger
以便触发器执行不同的操作?还是我需要drop
重新create
触发?
从 MySQL 5.5 开始,您必须删除并重新创建触发器。在不删除触发器的情况下
无法更新列。Statement
文档:CREATE TRIGGER DROP TRIGGER
您还可以使用 INFORMATION_SCHEMA 表访问有关触发器的信息:
SELECT * FROM INFORMATION_SCHEMA.TRIGGERS
但是,由于这些表实际上是视图,因此您不能UPDATE
在它们上使用。
这只是比使用 SHOW TRIGGERS 更方便的访问和操作信息的方式。
在 Windows 操作系统上,您可能需要Connector/Net Visual Studio 集成来查看和编辑现有的数据库对象。限制是您只能在循环 内编辑触发器主体。For each row ...
否则,唯一的选项是删除并重新创建触发器。
但请确保在删除触发器之前,与触发器关联的表已锁定,
并在重新创建触发器后解锁。
正如@Jocelyn 提到的,您无法更改触发器。但是,如果您使用的是MySql Workbench,它将允许您更改触发器。只需右键单击您的表名,然后从那里单击更改表选项,您可以选择触发器选项并更改它。尽管您无法从查询中执行它。表名--> 更改表--> 触发器。