python - Flask sqlalchemy 更新限制

标签 python mysql sql-update limit flask-sqlalchemy

我尝试使用 Flask-SQLAlchemy(不是 SQLAlchemy!)在 Flask 中执行有限制的更新查询。

db.session.query(ItemObject).filter_by(owner_type=0,item_id=item_id.decode('hex')).update({'owner_type': '1'})

当我尝试“.limit(1)”或“update({'owner_type': '1'}, mysql_limit=1)”时出现错误

AttributeError: 'long' object has no attribute 'limit'

TypeError: update() got an unexpected keyword argument 'mysql_limit'

如何在不使用 execute() 的情况下进行此查询?

最佳答案

对于您的第一个错误,听起来您在调用 update() 之后尝试调用 limit()。

db.session.query(ItemObject).filter_by(owner_type=0,item_id=item_id.decode('hex')).update({'owner_type': '1'})

此行返回一个 long,因为 update() 返回匹配(未修改!)的行数。更新后无法链接限制。

不能在带有update 的查询上调用limit,所以无论如何它都不会工作。这只是 MySQL 的事。

看看之前的答案 - https://stackoverflow.com/a/25943713/175320 - 它向您展示了如何使用子查询以可移植的方式获得相同的最终结果。

关于python - Flask sqlalchemy 更新限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29947609/

相关文章:

python - 如何加入两个没有重复的元组列表

Python DataFrame 未保存。如何永久分配呢?

mysql - 如何返回 SQL 中时间戳之间的差异?

php - 当值未更改时,MySQL 在更新时没有受影响的行

sql - 更新联接不更新与等效选择相同的行数

python - 检查 numpy 数组中的不变列

python - 单元测试 pythons telnetlib

python - Mysql 连接器错误 1064 - 使用 URL 更新

mysql - 在 MySQL 中使用 UNION 时区分输出

sql - 在单个命令中有条件地更新表的多个列