gpt4 book ai didi

postgresql - Postgres : narrowing trigger scope

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

(Postgres 8.3)

我正在使用 X 100 多列宽的数据库表(遗憾的是我无法更改),其中许多列会通过正常的业务流程不断且非常频繁地更新。

我需要根据异常业务流程更新的 X 中特定列 foo 的更新来更新表 Y。但是,由于针对 X 的更新数量非常多,因此可以简单地应用一个检查 X.foo 的触发器来决定是否更新 Y Not Acceptable 。

Y也不是行尾,还有几层深的祖先链,都需要冒泡到根。

我能想到的唯一解决方案是:

  • X 分成多个表(不允许)
  • 明确地更新 Y(以及 Z 和其他)作为更新 X 的业务逻辑的一部分,但这将占地面积很大,当有人必须在另一个流程中实现相同的内容时,会留下很大的空间让他们弄错或遗漏它。这显然不是一个好的设计(我正在尝试逐步修复我可以修复的问题)。

有谁知道按列或任何其他替代方法限制触发器执行的方法吗?触发 View ?其他巫术?

最佳答案

您也许可以用规则做一些事情,但之前已经说过,触发器应该“足够好”。但是,如果您正在尝试解决管理问题而不是技术问题,那么规则可能会对您有所帮助。他们会在执行期间更早地申请。当心它们的一些陷阱,通常是序列等。

关于postgresql - Postgres : narrowing trigger scope,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2265561/

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