我需要能夠快速批量插入大量記錄,同時仍能確保數據庫中的唯一性。要插入的新記錄已被解析,並且是唯一的。我希望有一種方法可以在數據庫級別執行唯一性,而不是在代碼本身。Django獨特的批量插入
我正在使用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)
編輯:
已經不在數據庫中的記錄應該被插入,並且記錄已經存在的應該被忽略。
您原始數據的格式是?如果它是一個csv,我想知道你是否可以循環遍歷每個條目並以這種方式保存。 – djq 2013-03-07 04:09:03
['get_or_create'](https://docs.djangoproject.com/en/1.6/ref/models/querysets/#get-or-create)。 – 2014-01-11 05:42:33