对于单个记录更新,我尝试了以下代码并且它正在运行。
uid=1
info = Info.query.filter_by(id=uid).first()
info.sold_status ='1'
db.session.add(info)
db.session.commit()
现在我想为多行更新一列。 我试过了:
for row in db.session.query(Uninstall.status).all():
print row.status
abc=row.status
abc=uid
db.session.add(row.status)
db.session.commit()
但它不起作用。
提前致谢:)
答案 0 :(得分:15)
建议未优化。您可以使用选项进行更新: 1.
for row in Uninstall.query: # all() is extra
row.status = new_status
Session.commit()
如果有很多行,它可以更快,但它会为每一行调用UPDATE
。不好,是吗?
2
Uninstall.query.update({Uninstall.status: new_status})
Session.commit()
仅为所有行调用一个UPDATE
查询。
答案 1 :(得分:-2)
for row in Uninstall.query.all():
print row.status
row.status = <new status>
db.session.add(row)
db.session.commit()