python - Flask SQLAlchemy 批量删除记录
问题描述
我是 SQLAlchemy 的新手,我不知道如何一次删除多条记录。文档指出它与 .add() 相同,但使用 .delete() 代替。如果我附加 .first() 它可以工作,但是我不能使用 .all() 否则我会收到以下错误:
sqlalchemy.orm.exc.UnmappedInstanceError: Class 'builtins.list' is not mapped
这是代码:
delete = Skilljoin.query.filter_by(staffid=30).all()
db.session.delete(delete)
db.session.commit()
提前致谢。
解决方案
Skilljoin.query.filter_by(staffid=30).all()
返回查询结果的列表。
要删除任一使用:
skilljoins = Skilljoin.query.filter_by(staffid=30).all()
for skilljoin in skilljoins :
db.session.delete(skilljoin)
db.session.commit()
或者
Skilljoin.query.filter_by(staffid=30).delete()
(https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.query.Query.delete)
推荐阅读
- mysql - 相关表有别名时如何按关系排序
- javascript - 在汇总构建中包含特定模块
- svelte - Culori js 适用于 Svelte REPL 但不适用于本地项目
- javascript - React JS 路由:从一页中省略一些组件
- r - 在 R 中将 JSON 文件转换为可用的数据框
- python - 如何在 Mac 上从 python 解决 ssl.SSLCertVerificationError
- c++ - Qt 中是否有任何功能可以编辑 JSON 文件?
- javascript - 如何在密码保护页面上根据 PHP 服务器响应运行 JavaScript?
- php - 删除 php url 无法在我的 XAMPP localhost 上运行,但可以在服务器上运行
- excel-formula - 收到索引匹配的参考错误,我做错了什么?