데이터베이스의 고유성을 보장하면서 대용량 레코드를 신속하게 대량으로 삽입 할 수 있어야합니다. 삽입 할 새 레코드는 이미 구문 분석되었으며 고유합니다. 나는 코드 자체가 아니라 데이터베이스 레벨에서 고유성을 강화할 수있는 방법이 있기를 바라고있다.Django 고유 벌크 삽입물
데이터베이스 백엔드로 MySQL을 사용하고 있습니다. 장고가 다른 데이터베이스에서이 기능을 지원한다면 백엔드를 변경하는 데 유연합니다.
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)
편집 :
이미 데이터베이스에없는 레코드가 삽입되어야 레코드를 이미 존재했던 것은 무시되어야한다.
원본 데이터는 어떤 형식입니까? 그것은 csv 경우, 난 그냥 각 항목을 통해 반복하고 그런 식으로 저장할 수 있는지 궁금하네요. – djq
['get_or_create'] (https://docs.djangoproject.com/ko/1.6/ref/models/querysets/#get-or-create). –