SQLAlchemy中的批量更新来自文本查询结果/ ResultProxy或dict

时间:2014-09-26 21:05:17

标签: python postgresql sqlalchemy

我想从一个只有文本和数据库连接的查询中批量更新SQLAlchemy中的ORM表。我不能轻易(我相信)反映ORM中的源查询,因为它可能来自一组无限的表。额外的皱纹是我想更新键值HSTORE列(postgres)。我想我可以逐行弄清楚如何做这个,但更喜欢批量UPDATE FROM风格的操作。

为了简单起见:

class Table(Base):
    __tablename__= 'table'

    id = Column(Integer, primary_key=True)
    hstore = Column(MutableDict.as_mutable(HSTORE))

query_to_update_from = 'select id, attr1, attr2 from source_table where id between 1 and 100'

我想用{' attr1':attr1,' attr2':attr2}更新Table.hstore,其中id匹配。我希望任何名为id的列都能更新hstore。

我知道我可以session.execute('select id, attr1, attr2 from source_table where id between 1 and 100')轻松获取列名和行数据列表。我可以从中列出字典,但无法弄清楚如何在批量更新中使用它。

我也试过在原始文本查询中创建一个查询()。子查询无济于事,这是可以理解的,因为没有所需的结构。

我很难过!

0 个答案:

没有答案