Мне нужно иметь возможность быстро вставлять большие объемы записей быстро, сохраняя при этом уникальность в базе данных. Новые записи, которые нужно вставить, уже были проанализированы и уникальны. Я надеюсь, что есть способ обеспечить уникальность на уровне базы данных, а не в самом коде.Django Unique Bulk Inserts
Я использую MySQL в качестве базы данных. Если django поддерживает эту функциональность в любой другой базе данных, я гибко меняю сервер, поскольку это требование.
Массовые вставки в Django не используют метод save
, поэтому как можно вставлять несколько сотен до нескольких тысяч записей за раз, сохраняя при этом уникальные поля и уникальные поля вместе?
Мои модели структуры, упрощена, выглядеть примерно так:
class Example(models.Model):
Meta:
unique_together = (('name', 'number'),)
name = models.CharField(max_length = 50)
number = models.CharField(max_length = 10)
...
fk = models.ForeignKey(OtherModel)
Edit:
Записи, которые не являются уже в базе данных должна быть вставлена, и записи которые уже существуют, следует игнорировать.
Какая форма ваших исходных данных? Если это csv, мне интересно, можете ли вы просто пропустить каждую запись и сохранить ее таким образом. – djq
['get_or_create'] (https://docs.djangoproject.com/en/1.6/ref/models/querysets/#get-or-create). –