python - 为什么 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 中应用了一个限制。
文档还说
请注意,如果存在连接加载的集合,这可能包含多个结果行
但老实说,我并不真正理解那部分。
有没有其他人有这个问题?如果不是第一个,我应该使用什么功能?谁能解释这里发生了什么,我真的迷路了。
解决方案
推荐阅读
- python - 即使语法正确,Python也会抛出无效语法
- php - Codeigniter 将查询组合在一个循环中
- c# - 如何正确访问/修改 XElement 对象中的属性
- ruby-on-rails - 有没有办法将占位符更改为简单形式的 as: :select 选项?
- npm - 是否可以覆盖 package.json 中的“模块”字段?
- google-apps-script - 用于创建和删除标签的 Gmail 脚本不起作用
- hive - 在 CLI 中无法查看配置单元表数据(以 Parquet 文件格式存储)
- katalon-studio - 在 API 中使用从 excel 中读取的参数
- apache - 将数据从 Apache Alooma 转储到 Bigquery
- git - 是否可以将 bitbucket 的“所有分支图”历史记录复制到 git?