PostgreSQL - Einschränkungen deaktivieren

Ich habe eine Tabelle mit ca. 5 Millionen Zeilen, die eine fk-Einschränkung enthält, die auf den Primärschlüssel einer anderen Tabelle verweist (ebenfalls ca. 5 Millionen Zeilen).

Ich muss ungefähr 75000 Zeilen aus beiden Tabellen löschen. Ich weiß, dass es inakzeptabel lange dauern wird, wenn ich dies mit aktivierter fk-Einschränkung versuche.

Ausgehend von einem Oracle-Hintergrund war mein erster Gedanke, die Einschränkung zu deaktivieren, zu löschen und dann die Einschränkung wieder zu aktivieren. PostGres scheint es mir zu ermöglichen, Einschränkungsauslöser zu deaktivieren, wenn ich ein Superuser bin (ich bin es nicht, aber ich melde mich als der Benutzer an, der die Objekte besitzt / erstellt hat), aber das scheint nicht ganz das zu sein, was ich will.

Die andere Option besteht darin, die Einschränkung zu löschen und sie dann wieder herzustellen. Ich mache mir Sorgen, dass die Wiederherstellung der Einschränkung angesichts der Größe meiner Tabellen Ewigkeiten in Anspruch nehmen wird.

Irgendwelche Gedanken?

edit: Nach Billys Aufforderung habe ich versucht, den Löschvorgang durchzuführen, ohne irgendwelche Einschränkungen zu ändern, und es dauert mehr als 10 Minuten. Ich habe jedoch festgestellt, dass die Tabelle, aus der ich zu löschen versuche, einen selbstreferenzierenden Fremdschlüssel hat ... dupliziert (& nicht indiziert).

Endgültiges Update - Ich habe den selbstreferenziellen Fremdschlüssel gelöscht und wieder hinzugefügt. Billy hat alles in allem Recht, aber leider kann ich seinen Kommentar nicht als Antwort akzeptieren!

Antworten auf die Frage(6)

Ihre Antwort auf die Frage