批量创建需要交易原子吗?

时间:2020-02-18 16:52:19

标签: python django database

我正在使用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)

1 个答案:

答案 0 :(得分:2)

不,您不必针对任何一种情况。根据{{​​3}},对于bulk_create使用事务原子将是多余的,因为该方法已经使用原子事务。

相关问题