gpt4 book ai didi

mysql - 让 MySQL AFTER INSERT 在事务完成后触发

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

我有一个 mysql 数据库,其中的条目被添加到一个显式事务 block 内的两个相关表中。当事务成功完成时(并且仅在此时),应通知另一个进程有关新数据。

为此,我编写了一个 UDF,它通过 IPC 通知其他进程。我还在其中一个表上设置了一个 AFTER INSERT 触发器,该触发器调用 UDF。

我假设触发器将在事务完成并且实际插入行后触发。但是,它似乎是在执行 INSERT 语句后立即执行的。

有没有什么方法可以延迟触发器函数的执行,直到行真正全局插入到数据库中(即在 COMMIT 之后)?

我想,解决方法是在 COMMIT 之后显式调用 UDF,但自动化方法会更好。

最佳答案

查看 MySQL 文档,似乎无法定义在提交事务后运行的触发器。

我认为基本原理是触发器通常用于对数据库进行额外更改,因此您几乎总是希望它们在事务内部运行以避免数据完整性问题。

看起来其他数据库系统(如 Oracle)也支持此行为,但如果您坚持使用 MySQL,则必须手动调用 UDF。

关于mysql - 让 MySQL AFTER INSERT 在事务完成后触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16011795/

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