python SQLAlchemy:使用Session对象删除

我无法弄清楚这一点:我想删除匹配查询中表中的所有记录.有点像这样.

engine = sqlalchemy.create_engine(string)
meta = MetaData(bind=engine)
meta.reflect(bind=engine, schema='myschema')

Base = automap_base(metadata=meta)
Base.prepare(engine, reflect=True)
Classes = Base.classes

Session = sessionmaker(bind=engine)
session = Session()

session.delete(plays.record_id == '123')

但这不起作用.这是什么想法?我得到的错误是:

解析记录ID 020087时出错:未映射类’sqlalchemy.sql.elements.BinaryExpression’

最佳答案
在SQL Alchemy中,您将从数据库中删除通过查询获得的对象.你可以用2种方式做到这一点:

使用查询删除(仅发出一个DELETE语句):

session.query(User).filter(User.id==7).delete()
session.commit()

删除查询返回的对象实例(将发出2个语句:首先是SELECT,然后是DELETE):

obj=session.query(User).filter(User.id==7).first()
session.delete(obj)
session.commit()

转载注明原文:python SQLAlchemy:使用Session对象删除 - 代码日志