Postgres中的触发器意外触发

时间:2018-12-02 13:34:06

标签: postgresql database-trigger

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

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

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

有人可以解释一下,给我指出一些参考文献吗?

我现在没有任何代码可以发表...但是我认为这种情况对于一些对Postgres有更多经验的人来说是显而易见的。

1 个答案:

答案 0 :(得分:2)

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