首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >修改MySQL触发器的正确方法是什么?

问修改MySQL触发器的正确方法是什么?
EN

Stack Overflow用户
提问于 2015-02-11 10:00:30
回答 1查看 1.4K关注 0票数 2

正如您可能知道的,没有修改MySQL触发器的语法。

为此,您需要执行DROP触发器,然后使用新的定义重新创建它。

考虑到以下几点,什么是正确/最佳的做法:

  • 您不能将这两条语句封装在事务中,因为这是没有意义的(同时删除触发器和创建触发器调用隐式事务)。
  • 不能使用在触发错误时读取的锁表。
  • 仅在DROP和CREATE触发器之间,其他会话可能会插入/update/delete行,这两个新触发器和旧触发器都不会处理。
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-11 10:14:02

在我发布之前的测试中,我忽略了我所获得的锁的类型,它被读取了。

因此,似乎使用写锁完成了以下工作:

代码语言:javascript
复制
delimiter $$

LOCK TABLES table1 WRITE $$

DROP TRIGGER IF EXISTS after_insert_on_table1 $$

CREATE TRIGGER after_insert_on_table1 AFTER INSERT ON table1
FOR EACH ROW
    BEGIN
        ...
    END
$$

UNLOCK TABLES $$

delimiter ;

因此,我的建议是在更新/修改触发器时始终使用此序列。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28451395

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档