【问题标题】:Triggers in Postgres fired unexpectedlyPostgres 中的触发器意外触发
【发布时间】:2018-12-02 13:34:05
【问题描述】:

我有一个父表和几个子表,其中 FK 指向父表。我从父表中删除了一条记录,我注意到这会在所有子表上触发删除触发器,即使我要删除的父记录在这些子表中没有子记录。

我觉得这很奇怪。但我来自 SQL Server,所以在 Postgres 中的行为可能会有所不同。

如果重要的话,我的触发器是语句级触发器。

谁能解释一下,给我一些参考资料?

我现在没有任何代码可以发布......但我认为对于一些在 Postgres 方面有更多经验的人来说情况会很清楚。

【问题讨论】:

    标签: postgresql database-trigger


    【解决方案1】:

    无论受影响记录的数量如何,都会触发语句级触发器。因此,即使不存在子记录,也会执行自动删除语句(假设您的 FK 为 on delete cascade)并触发触发器。

    【讨论】:

      猜你喜欢
      • 2016-12-10
      • 1970-01-01
      • 1970-01-01
      • 2012-04-11
      • 1970-01-01
      • 2010-10-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多