gpt4 book ai didi

mysql - 在事务中更改 MySQL 触发器

转载 作者:行者123 更新时间:2023-11-29 00:25:29 26 4
gpt4 key购买 nike

ALTER TABLE 命令之后,通常需要更新一个触发器,该触发器根据在更改的表上插入、更新或删除的数据而触发。不幸的是,DROP TRIGGERCREATE TRIGGER 导致 implicit commits ,因此不能简单地将这两个命令放在一个事务中,然后再提交。

有没有一种方法可以更新 MySQL 触发器,以便每当操作具有触发器的表中的数据时,触发器的旧变体或新变体都处于事件状态?

最佳答案

您可以使用表锁定以原子方式修改触发器:

LOCK TABLES `mytable` WRITE;  

DELIMITER $$
DROP TRIGGER `mytable_tri` $$
CREATE TRIGGER `mytable_tri` AFTER INSERT ON `mytable`
FOR EACH ROW BEGIN
/* ...... trigger code ......... */
END;
$$
DELIMITER ;

UNLOCK TABLES;

它适用于 MySQL 5.6 及更新版本。

我前段时间写过一篇博文:http://vkwww.blogspot.com/2014/07/alter-trigger-in-mysql.html

关于mysql - 在事务中更改 MySQL 触发器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19126562/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com