2016-07-17 10 views
0

Ich habe eine Tabelle namens "Reviews" und es verweist auf einen Datensatz in einer Tabelle "ReviewSetups". Wenn ich ein ReviewSetup lösche, sollte ich auch alle untergeordneten Reviews löschen (also cascade delete).Postgres - Cascade Löschen funktioniert nicht

Ich habe den Fremdschlüssel wie unten in der Tabelle Bewertungen eingerichtet, aber nichts wird gelöscht, wenn ich ein Elternteil ReviewSetup lösche.

Ich habe andere Entitäten in durch db als auch die ich mit einem FK in genau der gleichen Weise migriert und die funktionieren gut.

Hat jemand eine Idee, was hier vor sich geht?

enter image description here

EDIT

Hier ist der Code:

-- 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; 
+0

http://meta.stackoverflow.com/questions/285551/why-may-i-not-upload-images-of-code -on-so-wenn-fragen-eine-Frage/285557 # 285557 –

+0

hinzufügen Ausgabe von Ihnen löschen eine übergeordnete Zeile und dann Kinder auswählen und sie sind ther? .. –

+0

Was meinst du genau mit "add output von Ihnen löschen a Elternteil"? – Corstiaan

Antwort

0

fallen Ended bis die gesamte db und wieder läuft die Migration von Grund auf neu. Irgendwie hat das es gelöst. Irgendwo, irgendwie war die Konfiguration ein bisschen aus. Wirklich neugierig, was der Täter war ...

1

Wenn Sie die Datenbank immer wieder löschen mussten, ist es besser, Einschränkungen zu deaktivieren, bis Sie den richtigen Schuldigen finden oder das Schema neu gestalten.

Sperren Sie Einschränkungen und löschen Sie die Daten und aktivieren Sie sie dann erneut.

Disable Constraints: Alter table tablename NOCHECK CONSTRAINT constraintname

wieder aktivieren: Alter table tablename CHECK CONSTRAINT constraintname