gpt4 book ai didi

MySql After Update 触发器执行顺序

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

我正在调用我的 Nodejs 应用程序的 API 来更新我的 MySQL 数据库中的记录。

我在上面定义了一个“更新后触发器”。触发器使用 sys_exec 调用一个 post restful API,将更新后的记录 ID 传递给另一个 API。然后,另一个 API 获取记录并根据更新后的值,将在同一数据库的另一个表中插入一条新记录。

但实际发生的是:首先第二个 API 根据记录的旧值插入新记录,然后旧值更新新值。

据我所知,“更新触发器后”保证在更新当前记录后开始执行触发器。请提供任何建议或帮助。

最佳答案

更新后触发器在记录更新后但事务提交之前运行。

通过从触发器调用另一个 api,第二个插入很可能在不同的事务中运行。除非你改变 isolation level read uncommitted,第二个事务只能读取已提交的,因此记录的值不变。

我会从触发器而不是另一个 api 进行第二次插入,因为触发器显然可以看到更新后的值。第二个 api 仍然可以处理它目前正在做的任何其他事情。

我不建议将隔离级别更改为 read uncommitted - 除非您真的知道自己在做什么。它可能会产生意想不到的副作用。

关于MySql After Update 触发器执行顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51391150/

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