django bulk_create是否可能出现异常

时间:2018-10-29 04:59:07

标签: django django-models transactions

在使用Model.objects.bulk_create()时,如果在插入过程中发生异常,它会回退整个操作还是继续执行不冲突的记录,并且有什么方法可以知道插入了哪些记录,哪些抛出了记录。错误?

1 个答案:

答案 0 :(得分:3)

如果发生异常,则将回滚整个操作。如果您查看source code,将会看到所有数据库操作都包装在transaction.atomic()中。

无法知道哪些值导致了冲突。此类信息可能在特定于数据库的错误消息中可用,但这不是API的一部分。

请注意,自Django 2.2起,将有一个ignore_conflicts参数,您可以通过该参数明确控制操作是否回滚或是否将忽略冲突。