首页 > 解决方案 > 为什么 sqlalchemy first() 更新多条记录

问题描述

好的,我有一些这样的代码

net = table1.query.filter_by(user='foo', size=size).first()
net.user = bar
net.commit()

我以为这会更新一条记录,但令我沮丧的是它没有;它更新了 ~2300 并产生了这个错误

sqlalchemy.orm.exc.StaleDataError: UPDATE statement on table 'table1' expected to update 1 row(s); 2305 were matched

文档说first()在生成的 SQL 中应用了一个限制。

文档还说

请注意,如果存在连接加载的集合,这可能包含多个结果行

但老实说,我并不真正理解那部分。

有没有其他人有这个问题?如果不是第一个,我应该使用什么功能?谁能解释这里发生了什么,我真的迷路了。

标签: pythonsqlalchemyflask-sqlalchemy

解决方案


推荐阅读