Postgres:禁用全部触发并进行更新级联

问题描述 投票:0回答:1

好像我]

ALTER TABLE foo DISABLE TRIGGER ALL;
DELETE FROM foo;

删除操作不会与其他表级联

FOREIGN KEY ("fooId") REFERENCES "foo"("id") ON DELETE CASCADE

约束,但是我在文档中找不到有关此的任何内容。我也没有看到我没有在[]中创建的任何触发器

SELECT * FROM information_schema.triggers;

我猜测ON UPDATE / ON DELETE在内部作为触发器实现(在pgAdmin中不可见)?有人知道这是哪里记录的吗?

似乎当我ALTER TABLE foo DISABLE TRIGGER ALL;从foo中删除;删除操作不会与使用FOREIGN KEY(“ fooId”)参考在删除级联上的“ foo”(“ id”)一起级联到其他表...

postgresql database-trigger cascade
1个回答
0
投票

尝试here

禁用/启用[副本|总是]触发这些表格配置了触发属于该表的触发器。禁用的触发器对于系统仍然是已知的,但是在其触发事件发生时不会执行。对于延迟的触发器,将在事件发生时而不是在实际执行触发器功能时检查启用状态。 一个人可以禁用或启用按名称指定的单个触发器,或表上的所有触发器,或仅用户触发器(此选项不包括内部生成的约束触发器,例如用于实现外键约束或可延迟唯一性的触发器,以及排除约束)

© www.soinside.com 2019 - 2024. All rights reserved.