0

我的 PostgreSQL 9.2 数据库定义了许多 AFTER DELETE 行级触发器,用于在删除父行时删除子行。(在子行引用父行的情况下,也有许多带有 ON DELETE CASCADE 的 FK。)这很有效,但是当需要删除许多行时它会很慢。有没有办法为此或其他方式使用语句级触发器来提高删除效率?我无法弄清楚如何在语句级触发器函数中获取已删除的行 - 或者关于刚刚发生的事情的任何有用信息,真的。

4

1 回答 1

2

目前没有太多。

您可以通过将要删除的行插入触发器中的边表来积累有关要删除的行的信息BEFORE ... FOR EACH ROW,然后让AFTER语句级触发器从子表中删除,但这与内置外键强制执行效果不佳。

定期讨论为语句级触发器累积“更改关系”。这就是你想要的,但还没有人想出一个可行的补丁来实现它。

于 2013-08-16T13:14:34.457 回答