Habe die Lösung.
Ich musste die Trigger für die Tabelle deaktivieren, um die Fremdschlüssel-Einschränkungsprüfung zu stoppen.
Auslöser deaktivieren
def disable_triggers(self):
with connection.cursor() as cursor:
cursor.execute('ALTER TABLE "Table Name" DISABLE TRIGGER ALL;')
Trigger aktivieren
def enable_triggers(self):
with connection.cursor() as cursor:
cursor.execute('ALTER TABLE "Table Name" ENABLE TRIGGER ALL;')
Wichtige Hinweise :
-
Laut diesem Dokumentlink , können Sie eine Liste als zweites Argument an
execute()
übergeben Methode (z. B.:Sie möchten vielleicht den Tabellennamen dynamisch übergeben), aber dies wird automatisch die Variablen maskieren und Sie könnten am Ende eine syntaktisch falsche PostgreSQL-Abfrage bilden (was viel Zeit gekostet hat, um das zu beheben) -
Stellen Sie sicher, dass Sie die Auslöser wieder richtig einschalten
-
Wenn Sie einen Fehler "Berechtigung verweigert" erhalten Dann möchten Sie vielleicht die DB-Benutzerberechtigungen überprüfen. Ich habe gerade die Superuser-Berechtigungen von PgAdmin aktiviert, was für mich in Ordnung war. und alles wieder funktionstüchtig. Wie geht das?