首页 > 解决方案 > SQLAlchemy 批量更新,字段数量不断变化

问题描述

我有一张带有 table_id、first_seen 和 last_seen 的表。我正在尝试创建以下功能:

def update(update_dicts_list):
    update_statement = MyTable.update.where(
            sa.and_(
                MyTable.table_id == sa.bindparam("table_id")
            )
        ).values(
            {column: sa.bindparam(column) for column in ["first_seen", "last_seen"]}
        )
    conn.execute(update_statement, update_dicts_list)

问题是 dicts 列表可以包含同时具有 first_seen 和 last_seen 的 dicts 以及仅包含其中一个的 dicts。然后我收到一条错误消息,提示“绑定参数 first_seen 需要一个值”。

有没有办法在仍然进行批量更新的同时出现这种情况?

标签: pythonsqlalchemybulkupdate

解决方案


推荐阅读