[英]Postgres - Cascade delete not working
我有一个名为“ Reviews”的表,它引用了“ ReviewSetups”表中的一条记录。 当我删除一个ReviewSetup时,我还将同时删除所有子评论(因此请级联删除)。
我已经在Reviews表上设置了如下所示的外键,但是在删除父ReviewSetup时没有任何内容被删除。
我在db中也有其他实体,这些实体我以完全相同的方式与FK一起迁移,并且工作正常。
有人知道这里发生了什么吗?
编辑
这是代码:
-- Foreign Key: "FK_Reviews_ReviewSetup_Id_ReviewSetups_Id"
-- ALTER TABLE "Reviews" DROP CONSTRAINT "FK_Reviews_ReviewSetup_Id_ReviewSetups_Id";
ALTER TABLE "Reviews"
ADD CONSTRAINT "FK_Reviews_ReviewSetup_Id_ReviewSetups_Id" FOREIGN KEY ("ReviewSetup_Id")
REFERENCES "ReviewSetups" ("Id") MATCH SIMPLE
ON UPDATE CASCADE ON DELETE CASCADE;
如果必须一次又一次删除数据库,最好禁用约束,直到找到合适的罪魁祸首或重新设计架构为止。
禁用约束并删除数据,然后再次重新启用。
禁用约束: Alter table tablename NOCHECK CONSTRAINT constraintname
再次启用: Alter table tablename CHECK CONSTRAINT constraintname
最终删除了整个数据库,并从头开始重新运行迁移。 以某种方式解决了它。 在某处,以某种方式关闭了配置。 真的很好奇罪魁祸首是什么...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.