小编典典

数据库触发器是邪恶的吗?

all

数据库触发器是个坏主意吗?

根据我的经验,它们是邪恶的,因为它们会导致令人惊讶的副作用,并且难以调试(尤其是当一个触发器触发另一个触发器时)。通常,开发人员甚至不会考虑查看是否有触发器。

另一方面,如果您有逻辑必须在每次FOO在数据库中创建新的时发生,那么放置它的最简单的地方就是 FOO 表上的插入触发器。

我们唯一一次使用触发器是为了非常简单的事情,比如设置ModifiedDate.


阅读 55

收藏
2022-07-01

共1个答案

小编典典

触发器的主要问题是

  • 它们完全是全球性的——无论表活动的上下文如何,它们都适用;
  • 他们是隐形的;很容易忘记它们的存在,直到它们以意想不到的(而且非常神秘的)后果伤害您。

这只是意味着它们需要在适当的情况下谨慎使用;以我的经验,这仅限于关系完整性问题(有时粒度比您可以通过声明获得的更精细);通常不用于商业或交易目的。YMMV。

2022-07-01