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