首页 > 解决方案 > sqlalchemy 在 mssql 上更新记录时返回 -1

问题描述

flask-sqlalchemy用来更新mssql记录,但它返回-1。

库版本:

  1. SQLAlchemy 1.3.11
  2. Flask-SQLAlchemy 2.4.1
  3. pyodbc 4.0.27
  4. 烧瓶 1.1.1

代码第 1 部分:

ret = db.session.query(XXX).filter_by(id=1).update({"xxx": "xxxx"})
print("ret", ret)
db.session.commit()

ret-1,但记录已被修改。

代码第 2 部分:

obj = XXX.query.filter_by(id=q).first()
obj .xx = "xxx"
db.session.commit()

引发错误:

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

并且修改没有成功。

标签: sql-serversqlalchemyrowcount

解决方案


推荐阅读