【问题标题】:Update SQL database registers based on JSON基于 JSON 更新 SQL 数据库寄存器
【发布时间】:2021-03-15 19:25:36
【问题描述】:

我有一个包含 30k 个客户端的表,其中 ClientID 作为主键。 我从 API 调用中获取数据并使用 python 将它们插入到表中。

我想找到一种方法来插入带有新客户端的行,如果 API 调用附带的 ClientID 已存在于表中,则使用此客户端的更新信息更新现有寄存器。

谢谢!!

【问题讨论】:

  • INSERT INTO ...VALUES ... ON CONFLICT (ClientID) DO UPDATE
  • 非常感谢!是否可以像下面这样使用它? INSERT INTO ...VALUES ... ON CONFLICT (ClientID) DO UPDATE SET (columns)=(values)
  • 没有。您需要根据您的表结构调整此结构。

标签: python sql postgresql


【解决方案1】:

sn-p 代码可以很好地向我们展示您现在正在做什么。我想你正在使用像 SqlAlchemy 这样的 ORM?如果是这样,那么您正在考虑执行 UPSERT 类型的操作。

已经回答HERE

或者,如果您在没有 ORM 的情况下执行原始查询,那么您可以编写自定义过程并传递所需的参数。 HERE 是一篇很好的文章,介绍了如何在 MSSQL 中在高并发下完成。您可以以此为起点来理解,然后为 PostgreSQL 重新编写它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-03
    相关资源
    最近更新 更多