SQL Alchemy:如何从字典列表中批量更新值

ash*_*shu 3 python sqlalchemy

我想更新具有字段的表“ Salary”:

employeeId,
Salary
Run Code Online (Sandbox Code Playgroud)

现在,我在python词典中更新了每个员工的值,例如:

[
{employeeId:1,Salary:10000},
{employeeId:2,Salary:15000}
]
Run Code Online (Sandbox Code Playgroud)

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

小智 5

我将假定您已经像Salary那样映射了该表,而employeeId是您的主键。因此,您要做的就是使用相同的字典:

[
  {employeeId:1,Salary:10000},
  {employeeId:2,Salary:15000}
]
Run Code Online (Sandbox Code Playgroud)

并使用功能bulk_update_mappings

session.bulk_update_mappings(
                Salary,
                [{employeeId:1,Salary:10000},
                 {employeeId:2,Salary:15000}]
            )
Run Code Online (Sandbox Code Playgroud)

在此功能中,主要ID必须位于字典中,因为这将是您的过滤器,而其他键(列)将使用您在字典中定义的值进行更新。

PS:对不起我的英语。