PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Как да деактивирам временно ограниченията за целостта на db в django - postgresql

Разбрах решението.

Трябваше да деактивирам тригерите на таблицата, за да спра проверката на ограничението на външния ключ.

Деактивиране на тригерите

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

Активиране на задействания

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

Важни бележки :

  • Според тази връзка към документ , можете да подадете списък като втори аргумент на execute() метод (напр.:може да искате да предадете името на таблицата динамично), но това автоматично ще избяга от променливите и в крайна сметка може да формирате синтактично грешна заявка за PostgreSQL (което отне много време да го поправя)

  • Уверете се, че сте включили отново тригерите правилно

  • Ако получавате грешка Отказано разрешение Тогава може да искате да проверите потребителските разрешения на DB, току-що включих разрешенията за суперпотребител от PgAdmin, което беше добре за мен. и всичко обратно на работа. Как да го направя?



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Разделяне на списък в Postgres 12

  2. Postgres ограничение за уникален диапазон от дата и час

  3. PostgreSQL - внедряване на надеждна опашка

  4. Прост алгоритъм за търсене на графики в SQL (PostgreSQL)

  5. Драйверът на JDBC Postgres има ли начин да зададе client_encoding за свързване към базата данни?