sql >> Database teknologi >  >> RDS >> PostgreSQL

Hvordan deaktiverer jeg midlertidigt db-integritetsbegrænsninger i django - postgresql

Fik løsningen.

Jeg var nødt til at deaktivere triggerne på bordet for at stoppe kontrollen med fremmednøglebegrænsninger.

Deaktiver triggere

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

Aktiver triggere

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

Vigtige bemærkninger :

  • Ifølge dette dokumentlink , kan du sende en liste som det andet argument til execute() metode (f.eks:du ønsker måske at videregive tabelnavnet dynamisk), men dette vil automatisk undslippe variablerne, og du kan ende med at danne en syntaktisk forkert PostgreSQL-forespørgsel (som tog meget af min tid at rette det)

  • Sørg for at tænde udløserne igen korrekt

  • Hvis du får fejlen Permission denied Så vil du måske tjekke DB-brugertilladelserne, jeg har lige slået superbrugertilladelser til fra PgAdmin, hvilket var ok for mig. og alt tilbage på arbejde. Hvordan gør man det?



  1. SQL Server 2008 installeret, selvom den kørende version stadig er 2005

  2. Hvordan fjerner jeg emoji-tegn fra en streng?

  3. Gemmer filstien til det uploadede billede til MySQL-databasen

  4. Optimering af min mysql-sætning! - RAND() FOR LANGSOM