sql >> Databáze >  >> RDS >> PostgreSQL

Jak dočasně deaktivuji omezení integrity db v django - postgresql

Mám řešení.

Musel jsem deaktivovat spouštěče na stole, abych zastavil kontrolu omezení cizího klíče.

Zakázat spouštěče

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

Povolit spouštěče

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

Důležité poznámky :

  • Podle tohoto odkazu na dokument , můžete předat seznam jako druhý argument do execute() metoda (např.:možná budete chtít předat název tabulky dynamicky), ale tím se automaticky uniknou proměnné a můžete skončit syntakticky chybným PostgreSQL dotazem (jeho oprava mi zabrala hodně času)

  • Ujistěte se, že jste spouštěče znovu správně zapnuli

  • Pokud se vám zobrazuje chyba Oprávnění odepřeno Pak možná budete chtít zkontrolovat uživatelská oprávnění DB, právě jsem zapnul oprávnění superuživatele z PgAdmin, což bylo pro mě v pořádku. a vše zpět do práce. Jak na to?



  1. Jak analyzovat stav databázových indexů

  2. Funkce Oracle To_Char V ve formátovacím řetězci

  3. Spočítat počet výskytů řetězce v poli VARCHAR?

  4. Použití Room DB v projektu knihovny