当前位置: 首页 > 面试题库 >

Django bulk_create具有导致IntegrityError的忽略行?

党祖鹤
2023-03-14
问题内容

我正在使用bulk_create将数千或行加载到Postgresql数据库中。不幸的是,某些行导致IntegrityError并停止了bulk_create进程。我想知道是否有一种方法告诉django忽略这些行并尽可能多地保存批处理?


问题答案:

现在可以在Django 2.2上实现
Django 2.2 从文档中ignore_conflicts为该bulk_create方法添加了一个新选项:

在支持它的数据库上(除PostgreSQL <9.5和Oracle以外的所有数据库),将ignore_conflicts参数设置为True会告诉数据库忽略插入任何失败约束的行的失败,例如重复的唯一值。启用此参数将禁用在每个模型实例上设置主键(如果数据库正常支持的话)。

例:

Entry.objects.bulk_create([
    Entry(headline='This is a test'),
    Entry(headline='This is only a test'),
], ignore_conflicts=True)


 类似资料:
  • 如果在Java代码中调用,下面的方法将警告,但将忽略Kotlin中的任何警告,因为是已检查的异常。 Java迫使开发人员在抛出异常时采取安全措施,但在Kotlin中,它只是忽略了异常,从而产生了潜在的bug源。我确信有很多类似的情况,检查的异常被忽略了。 问题是如何处理这样的案件?

  • 场景: 我只有一个生产者和消费者,只有一个队列来传输消息。使用者将根据已使用该值的消息更新DB上的值。不应将任何操作并行发送到DB。所以,我们不应该做任何导致数据库上数据并发的事情。我使用一次接收一条消息。删除是否会导致多个操作并行发送到DB?

  • 我遇到了一种奇怪的行为。我的应用程序有一个主要活动,由navdrawer布局和默认列表片段组成。列表片段使用改造客户端获取内容。选择列表项时,将显示详细视图。在小屏幕上,通过单独的活动加载详细信息视图。该活动还使用改装客户端获取详细信息。然后,可以从生成新活动的navdrawer中选择一个选项。该活动也使用改造客户端发送数据。 列表和详细活动很好地调用了改造方法。我可以看到日志和事情正在按预期工作

  • JOOQ似乎完全忽略了数据库列的默认值。既不会更新ActiveRecord对象,也不会在插入时跳过此列。相反,它尝试将其设置为NULL,这在非NULL列上失败。 例: 我所期望的行为是,要么new记录()用korrekt值初始化所有默认变量(尽管我知道如果结果是自定义函数的结果,这可能很困难:-))。或者INSERT INTO不插入所有带有默认值的未修改列,然后INSERT INTO后面跟着一个S

  • 问题内容: 我想查找包含字符串的行,如下所示: 但是,这失败了,因为某些元素是NaN: ValueError:无法使用包含NA / NaN值的向量建立索引 所以我诉诸于混乱 有没有更好的办法? 问题答案: 有一个标志: 参见文档: na:默认NaN,填充缺失值的值。 因此,您可以执行以下操作:

  • 问题内容: 我正在开发一个使用Spring-boot,关系数据库和Elasticsearch的应用程序。 我在代码的2个不同位置使用JSON序列化: 在REST API的响应中。 当代码与Elasticsearch交互时。 我在Elasticsearch中需要一些属性,但我想向应用程序用户隐藏(例如,来自关系数据库的内部ID)。 这是一个实体的例子: 问题 :当对象持久化在Elasticsearc