Django ORM 提供了一个非常方便的方法来批量插入数据。要执行批量插入,你可以使用 bulk_create()
方法。这个方法可以接受一个包含模型实例的列表,并将它们一次性插入到数据库中。这样可以显著提高插入大量数据的性能。
以下是一个使用 Django ORM 批量插入数据的示例:
首先,假设你有一个名为 Person
的模型,如下所示:
from django.db import models
class Person(models.Model):
first_name = models.CharField(max_length=30)
last_name = models.CharField(max_length=30)
age = models.IntegerField()
现在,我们将使用 bulk_create()
方法批量插入一些 Person
实例:
from myapp.models import Person
# 创建一个包含多个 Person 实例的列表
people = [
Person(first_name='John', last_name='Doe', age=25),
Person(first_name='Jane', last_name='Doe', age=30),
Person(first_name='Jim', last_name='Smith', age=35),
Person(first_name='Jake', last_name='Johnson', age=40),
]
# 使用 bulk_create() 方法批量插入数据
Person.objects.bulk_create(people)
在这个例子中,我们首先创建了一个包含四个 Person
实例的列表。然后,我们使用 bulk_create()
方法将这些实例一次性插入到数据库中。这种方法比逐个插入实例要快得多,尤其是在处理大量数据时。
需要注意的是,bulk_create()
方法可以接受一个额外的参数 ignore_conflicts=True
,当设置为 True
时,如果在批量插入过程中遇到主键冲突(即尝试插入具有相同主键的新记录),则不会引发异常,而是会跳过该记录。这在某些情况下可能是有用的,例如,当你需要处理来自不同来源的数据,并且可能包含重复的主键时。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。