Postgres 中的触发器意外触发
Triggers in Postgres fired unexpectedly
我有一个父 table 和几个子 table,FK 指向父 table。我从父 table 中删除了一条记录,我注意到这会在所有子 table 上触发删除触发器,即使我要删除的父记录在这些子 table 中没有子记录s.
我觉得这很奇怪。但我来自 SQL 服务器,因此在 Postgres 中的行为可能有所不同。
如果重要的话,我的触发器是语句级触发器。
谁能解释一下,给我一些参考资料?
我现在没有任何代码可以post...但我认为对于一些在 Postgres 方面有更多经验的人来说情况会很清楚。
无论受影响记录的数量如何,都会触发语句级触发器。因此,即使不存在子记录,也会执行自动删除语句(假设您的 FK 是 on delete cascade
)并触发触发器。
我有一个父 table 和几个子 table,FK 指向父 table。我从父 table 中删除了一条记录,我注意到这会在所有子 table 上触发删除触发器,即使我要删除的父记录在这些子 table 中没有子记录s.
我觉得这很奇怪。但我来自 SQL 服务器,因此在 Postgres 中的行为可能有所不同。
如果重要的话,我的触发器是语句级触发器。
谁能解释一下,给我一些参考资料?
我现在没有任何代码可以post...但我认为对于一些在 Postgres 方面有更多经验的人来说情况会很清楚。
无论受影响记录的数量如何,都会触发语句级触发器。因此,即使不存在子记录,也会执行自动删除语句(假设您的 FK 是 on delete cascade
)并触发触发器。