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

What is the right way to modify a MySQL trigger?

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

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

考虑以下因素,right/best 这样做的方法是什么:

在发布之前进行测试时,我忽略了我正在获取的 LOCK 类型,它是 READ。

所以似乎使用 WRITE 锁可以完成工作:

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 ;

所以我的建议是在 updating/modifying 触发时始终使用此序列。