我想更新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'。