edh*_*hog 1 python sql sqlalchemy flask flask-sqlalchemy
我是 SQLAlchemy 的新手,我无法弄清楚如何一次删除多条记录。文档指出它与 .add() 相同,但使用 .delete() 代替。如果我附加 .first(),它会起作用,但是我不能使用 .all() 否则我会收到以下错误:
sqlalchemy.orm.exc.UnmappedInstanceError: Class 'builtins.list' is not mapped
Run Code Online (Sandbox Code Playgroud)
这是代码:
delete = Skilljoin.query.filter_by(staffid=30).all()
db.session.delete(delete)
db.session.commit()
Run Code Online (Sandbox Code Playgroud)
提前致谢。
小智 5
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()
Run Code Online (Sandbox Code Playgroud)
或者
Skilljoin.query.filter_by(staffid=30).delete()
Run Code Online (Sandbox Code Playgroud)
(https://docs.sqlalchemy.org/en/13/orm/query.html#sqlalchemy.orm.query.Query.delete)