sql >> Databasteknik >  >> RDS >> PostgreSQL

Hur inaktiverar jag tillfälligt db-integritetsbegränsningar i django - postgresql

Fick lösningen.

Jag var tvungen att inaktivera triggers på bordet för att stoppa kontroll av främmande nyckel.

Inaktivera utlösare

def disable_triggers(self):
    with connection.cursor() as cursor:
        cursor.execute('ALTER TABLE "Table Name" DISABLE TRIGGER ALL;')

Aktivera utlösare

def enable_triggers(self):
    with connection.cursor() as cursor:
        cursor.execute('ALTER TABLE "Table Name" ENABLE TRIGGER ALL;')

Viktiga anmärkningar :

  • Enligt denna dokumentlänk , kan du skicka en lista som det andra argumentet till execute() metod (t.ex.:du kanske vill skicka tabellnamnet dynamiskt), men detta kommer automatiskt att undkomma variablerna och du kan hamna i en syntaktisk felaktig PostgreSQL-fråga (vilket tog mycket av min tid att fixa det)

  • Se till att du slår på avtryckarna igen ordentligt

  • Om du får felet Permission nekad Då kanske du vill kolla DB-användarbehörigheterna, jag slog precis på superanvändarbehörigheter från PgAdmin, vilket var ok för mig. och allt tillbaka till jobbet. Hur gör man det?



  1. MySQL Workbench:hur visar man varningar?

  2. MySQL JOIN / GROUP_CONCAT andra bordet?

  3. mysql Åtkomst nekad för användare ''@'localhost' till databasen ''

  4. php7.4 mysqli timeout med borta