【问题标题】:SQL Alchemy: How to bulk update values from a list of dictsSQLAlchemy:如何批量更新字典列表中的值
【发布时间】:2016-04-15 08:41:09
【问题描述】:

我想更新一个包含字段的表'Salary':

employeeId,
Salary

现在,我已经更新了 Python 字典中每个员工的值,例如:

[
{employeeId:1,Salary:10000},
{employeeId:2,Salary:15000}
]

我想知道是否有一种方法可以在单个 SQL Alchemy 更新查询中执行此更新,而不是一个一个地执行许多更新语句

【问题讨论】:

  • 您可以构建一个批量插入语句,因此您只需执行一个 SQL 查询,但不确定是否可以在不循环您的 dict 的情况下形成该语句。
  • docs.sqlalchemy.org/en/latest/orm/… : "这是作为单个字典传递,还是作为字典列表传递,决定了 DBAPI 游标的 execute() 还是 executemany() 用于执行语句。"跨度>
  • 是的..这就是我想要的 SQL 查询..可能我在原始问题中没有很好地沟通。让我编辑一下。我该怎么做?

标签: python sqlalchemy


【解决方案1】:

我假设您已经将表映射为 Salary 并且 employeeId 是您的主键。所以,你所要做的就是使用相同的字典:

[
  {employeeId:1,Salary:10000},
  {employeeId:2,Salary:15000}
]

并使用函数bulk_update_mappings

session.bulk_update_mappings(
                Salary,
                [{employeeId:1,Salary:10000},
                 {employeeId:2,Salary:15000}]
            )

在此函数中,主 ID 必须在 dict 中,因为这将是您的过滤器,并且其他键(列)将使用您在 dict 中定义的值进行更新。

PS:对不起我的英语。

【讨论】:

  • 感谢您的回答。看起来这就是我需要的。我会尽力让你知道。但与此同时,我会接受这个答案。
猜你喜欢
  • 2022-08-12
  • 1970-01-01
  • 1970-01-01
  • 2019-02-21
  • 2022-01-11
  • 2013-10-14
  • 2017-06-11
相关资源
最近更新 更多