SQLAlchemy删除所有项目,而不仅仅是第一项

时间:2017-10-24 07:10:15

标签: python python-2.7 sqlalchemy

我正在尝试从我的数据库中删除一些数据线。我做了级联也删除了与datarecord相关的所有内容。我现在的问题是,如果我有多个具有相同名称属性的datarecord,我想删除它们。例如,我有3个数据线,其中两个具有属性name = Max,最后一个具有属性name = Peter。我现在如何删除Max& s?这是我到目前为止的代码:

def delete_anw(engine):
    Session = sessionmaker(bind=engine)
    session = Session()
    f = session.query(Anwendung).filter_by(name="Max").first()
    session.delete(f)
    session.commit()

此代码仅删除它找到的第一个查询。我知道这是因为first(),但是有一个类似all()的方法可以删除所有名称为Max的数据线吗?

2 个答案:

答案 0 :(得分:4)

只需删除.first()方法并将删除添加到查询本身

session.query(Anwendung).filter_by(name="Max").delete()

http://docs.sqlalchemy.org/en/latest/orm/query.html#sqlalchemy.orm.query.Query.delete 请看这个参考

答案 1 :(得分:-2)

 @ExceptionHandler(MethodArgumentNotValidException.class)

上面的代码对我来说很好。找到并删除了记录。