python - SqlAlchemy 如何更新所有行的一列数据?

标签 python mysql flask flask-sqlalchemy

对于单个记录更新,我已经尝试了以下代码并且它正在运行。

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()

但它不起作用。

提前致谢:)

最佳答案

建议未优化。您可以使用选项来更新: 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 查询。

关于python - SqlAlchemy 如何更新所有行的一列数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38242654/

相关文章:

python - 如何使用文件夹作为模块在 pythonanywhere 上部署 Flask 应用程序

python - 与第三方API Flask的全局连接

javascript - 我们可以在 PUBNUB 中重新发布消息吗

python - 从不同文件夹导入文件

c# - 检查MySQL数据库中是否已经存在一行?

mysql - 将不同的行合并为一个

Python - 在数据行之间进行插值

python - 是否有一种基于索引将列表分成两部分的首选方法

php - fatal error : Call to a member function fetch() on a non-object?

python - 如何测试使用上下文参数的 Flask API