PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Wie deaktiviere ich die referenzielle Integrität in Postgres 8.2?

Es gibt zwei Dinge, die Sie tun können (diese sind ergänzend, keine Alternativen):

  • Erstellen Sie Ihre Fremdschlüsseleinschränkungen als DEFERRABLE. Rufen Sie dann "SET CONSTRAINTS DEFERRED;" auf, was dazu führt, dass Fremdschlüsselbeschränkungen bis zum Ende der Transaktion nicht überprüft werden. Beachten Sie, dass der Standardwert, wenn Sie nichts angeben, NOT DEFERRABLE ist (ärgerlicherweise).
  • Rufen Sie „ALTER TABLE mytable DISABLE TRIGGER ALL;“ auf, was verhindert, dass Trigger ausgeführt werden, während Sie Daten laden, dann „ALTER TABLE mytable ENABLE TRIGGER ALL;“ wenn Sie fertig sind, um sie wieder zu aktivieren.