使用sqlalchemy更新数据库中的多行

时间:2019-09-11 16:30:19

标签: python sqlite sqlalchemy

我想更新sqlite数据库中的几个特定行。对于单行,文档提供了此示例

stmt = users.update().\
            where(users.c.id==5).\
            values(name='user #5')

其中user是表对象。

我认为这可能类似于一次在表中插入许多行

import sqlalchemy as sql

eng = sql.create_engine('sqlite:///test.db')

with eng.connect() as con:

    metadata = sql.MetaData()
    metadata.reflect(eng)

    users = metadata.tables.get('users')

    _ = con.execute(users.update().where(users.c.id.in_([2,3])),
                    [{'Occupation': 'Student'},
                     {'Occupation': 'Unemployed'}])

但是这将分别更新ID为2和3的两行,其值为'Unemployed'。

0 个答案:

没有答案