gpt4 book ai didi

javascript - Sequelize promise 在解决之前是否等待 postgres 触发器完成?

转载 作者:行者123 更新时间:2023-12-03 04:30:44 26 4
gpt4 key购买 nike

我有一个 contact postgres 表,其中包含 contacted_date 列。我最近创建了一个 contact_date 表,用于存储联系联系人的每个日期。

由于代码库频繁引用 contact 表中最近的联系日期,因此我尚未将所有数据从该表中迁移出来。相反,contact_date 包含联系给定联系人的每个日期,并且该表上的触发器会使用每个联系人的最新日期更新 contact

如果我使用 Sequelize 更改 contact_date, promise 是否会等待触发器成功完成?还是只等待 contact_date 更改成功完成?

在我的大部分代码中,这并不是一个大问题 - 如果我保留一个新的联系日期,那么我的代码已经可以访问该日期,并且如果需要,我可以在其他计算中使用该日期。但我在测试中遇到了困难,这可能是因为竞争条件。在我的测试中,我正在创建带有联系日期的新联系人,但我的一些测试失败了,可能是因为 promise 在触发器完成其工作之前就已解决。

更新:This SO post表示触发器是同一事务的一部分,这意味着在触发器完成之前 Sequelize promise 不会解决,但如果有人确定,我仍然想听到否认/确认。

最佳答案

我希望您使用transactions对于您的询问,我认为没有您的询问这是不可能的。

此外,实现目标的另一种方法是使用 hooks (基本上是应用程序级别的触发器)在sequelize中,而不是在数据库级别创建触发器。
由于您可以将事务对象传递给钩子(Hook),因此在钩子(Hook)下执行的操作保证是导致钩子(Hook)运行的同一事务的一部分。

关于javascript - Sequelize promise 在解决之前是否等待 postgres 触发器完成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43501399/

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