Postgres 中的触发器意外触发

Triggers in Postgres fired unexpectedly

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

我觉得这很奇怪。但我来自 SQL 服务器,因此在 Postgres 中的行为可能有所不同。

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

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

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

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