我正在使用Django的bulk_create
方法来一次创建许多条目。
为确保仅在没有异常的情况下才提交更改,我正在考虑将transaction.atomic()
添加到代码块中,但不确定是否需要添加。
据我所知,我只需要在方案2 中添加它,因为在这种情况下,我要执行多个查询。
场景1
在一个查询中创建1.000个条目
Entry.objects.bulk_create([
Entry(headline='This is a test'),
Entry(headline='This is only a test'),
# ...
])
场景2
以1.000的批量创建10.000个条目
Entry.objects.bulk_create([
Entry(headline='This is a test'),
Entry(headline='This is only a test'),
# ...
], batch_size=1_000)
答案 0 :(得分:2)
不,您不必针对任何一种情况。根据{{3}},对于bulk_create
使用事务原子将是多余的,因为该方法已经使用原子事务。