我是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()
谢谢。
答案 0 :(得分:2)
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)