【发布时间】:2018-10-29 04:59:06
【问题描述】:
使用Model.objects.bulk_create() 时,如果在插入过程中发生异常,它是回滚整个操作还是继续处理不冲突的记录,有什么方法可以知道插入了哪些记录,哪些引发了错误?
【问题讨论】:
标签: django django-models transactions
使用Model.objects.bulk_create() 时,如果在插入过程中发生异常,它是回滚整个操作还是继续处理不冲突的记录,有什么方法可以知道插入了哪些记录,哪些引发了错误?
【问题讨论】:
标签: django django-models transactions
如果发生异常,整个操作将被回滚。如果您查看source code,您会发现所有数据库操作都包含在transaction.atomic() 中。
无法知道是哪些价值观导致了冲突。此类信息可能会在特定于数据库的错误消息中提供,但这不是 API 的一部分。
请注意,从 Django 2.2 开始,将有一个 ignore_conflicts 参数,可让您明确控制操作是否回滚或是否忽略冲突。
【讨论】: