我是不是可以编辑MySQL触发器,我必须删除它并创建一个新触发器?
此外,作为触发器的相对新手,感觉他们似乎容易导致“错误”的数据。例如,我可能希望在一种特定类型的更新查询之后触发触发器(将数据插入另一个表),而不是其他类型。
感谢收到的任何提示!
答案 0 :(得分:6)
编辑:是的,MySQL 5&版本的5.n和6.n版本确实如此。 6实现CREATE TRIGGER
和DROP TRIGGER
而不是其他任何内容。根据{{3}},在SQL 92中甚至没有CREATE TRIGGER
,所以认为自己很幸运有TRIGGER: - )
this hunk of Postgres documentation有:
要修改现有触发器,请双击要修改的触发器的节点,或右键单击此节点,然后从上下文菜单中选择“更改触发器”命令。这两个命令都会打开SQL编辑器。
......这似乎做你想要的。我的猜测是这是GUI糖,在幕后得到DROP CREATE
。
对于某些UPDATE
而不是其他{s}的触发器,SQL每个表只有一个UPDATE
。在IF
触发器的开头放置一个UPDATE
子句,这样您的逻辑 - 无论您在某些UPDATE
s中执行什么操作 - 只在您认为合适时执行。
答案 1 :(得分:2)
MySQL有REPLACE TRIGGER,对吧?
作为旁注..这是一个问题吗?如果你担心在DROP和CREATE之间执行查询,你总是可以事先锁定表。
答案 2 :(得分:0)
如果您使用 MySql Workbench,它将允许您更改触发器。只需右键单击您的表名称,然后单击“更改表选项”,您就可以选择“触发器”选项并更改它。虽然,您不能从查询模式执行它。
Table Name --> Right Click --> Alter Table --> Triggers
。