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

Django bulk_create con ignora le righe che causano IntegrityError?

Ora è possibile su Django 2.2

Django 2.2 aggiunge un nuovo ignore_conflicts opzione per bulk_create metodo, dalla documentazione:

Sui database che lo supportano (tutti tranne PostgreSQL <9.5 e Oracle), l'impostazione del parametro ignore_conflicts su True indica al database di ignorare il mancato inserimento di righe che non superano i vincoli come i valori univoci duplicati. L'abilitazione di questo parametro disabilita l'impostazione della chiave primaria su ciascuna istanza del modello (se il database la supporta normalmente).

Esempio:

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