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

Django bulk_create mit Zeilen ignorieren, die IntegrityError verursachen?

Dies ist jetzt auf Django 2.2 möglich

Django 2.2 fügt einen neuen ignore_conflicts hinzu Option zu bulk_create Methode, aus der Dokumentation:

Bei Datenbanken, die dies unterstützen (alle außer PostgreSQL <9.5 und Oracle), weist das Festlegen des Parameters ignore_conflicts auf True an, dass die Datenbank Fehler beim Einfügen von Zeilen ignorieren soll, die Einschränkungen wie doppelte eindeutige Werte nicht erfüllen. Durch Aktivieren dieses Parameters wird das Festlegen des Primärschlüssels für jede Modellinstanz deaktiviert (sofern die Datenbank dies normalerweise unterstützt).

Beispiel:

Entry.objects.bulk_create([
    Entry(headline='This is a test'),
    Entry(headline='This is only a test'),
], ignore_conflicts=True)