【发布时间】:2013-02-22 02:21:35
【问题描述】:
我需要能够快速批量插入大量记录,同时仍确保数据库中的唯一性。要插入的新记录已经被解析,并且是唯一的。我希望有一种方法可以在数据库级别而不是在代码本身中强制执行唯一性。
我使用 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,我想知道您是否可以遍历每个条目并以这种方式保存。
标签: django django-models django-database