是不是我无法编辑MySQL触发器,我必须删除它并创建一个新触发器?

时间:2009-04-04 20:00:02

标签: mysql triggers

我是不是可以编辑MySQL触发器,我必须删除它并创建一个新触发器?

此外,作为触发器的相对新手,感觉他们似乎容易导致“错误”的数据。例如,我可能希望在一种特定类型的更新查询之后触发触发器(将数据插入另一个表),而不是其他类型。

感谢收到的任何提示!

3 个答案:

答案 0 :(得分:6)

编辑:是的,MySQL 5&版本的5.n和6.n版本确实如此。 6实现CREATE TRIGGERDROP 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