簡體   English   中英

Postgres-級聯刪除不起作用

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM