[英]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.