Python 如何使用SQLAlchemy删除最后一行?

Python 如何使用SQLAlchemy删除最后一行?,python,sql,sqlalchemy,orm,Python,Sql,Sqlalchemy,Orm,我需要执行下一个查询: 删除 按描述订购限制1 我正在努力: query=session.queryTable query.order\u byMyTable.my\u column.desc.limit1.delete 错误:调用order\u by时无法调用Query.update或Query.delete 我目前的方式我想摆脱循环: query = session.query(MyTable) for item in query.order_by(MyTable.my_column.des

我需要执行下一个查询:

删除 按描述订购限制1 我正在努力:

query=session.queryTable query.order\u byMyTable.my\u column.desc.limit1.delete 错误:调用order\u by时无法调用Query.update或Query.delete 我目前的方式我想摆脱循环:

query = session.query(MyTable)
for item in query.order_by(MyTable.my_column.desc()).limit(1).all():
    query.filter(MyTable.id == item.id).delete()
先到最后一排

使用MySQL

使用SQL

然后从第一个查询中获取ID或此行并运行此查询

DELETE FROM table_name WHERE id=the_id_that_you_get_from_first_query
=============更新===========

让我们从获取最后一行开始:

obj = session.query(ObjectRes).order_by(ObjectRes.id.desc()).first()
删除

先到最后一排

使用MySQL

使用SQL

然后从第一个查询中获取ID或此行并运行此查询

DELETE FROM table_name WHERE id=the_id_that_you_get_from_first_query
=============更新===========

让我们从获取最后一行开始:

obj = session.query(ObjectRes).order_by(ObjectRes.id.desc()).first()
删除


由于您处理的是ORM对象,因此只需检索最后一项,然后将其删除:

演示用ORM类 班级团队基础: __tablename\uu=团队 id=ColumnInteger,主键=True name=ColumnString50 秩=列整数 定义报告自我: 返回f Base.metadata.drop\u allengine Base.metadata.create_allengine 测试数据 使用Sessionengine作为会话: session.add_all [ 团队名称=加油工,排名=3, 团队名称=火焰,排名=1, 团队名称=Canucks,排名=2, ] session.commit 演示代码 使用Sessionengine作为会话: 最后地点团队=session.execute 选择team.order\u byTeam.rank.desc.limit1 .标量 打印最后位置团队 session.delete最后一个地点团队 session.commit SQL代码: 2021-04-25 14:08:16251信息sqlalchemy.engine.engine从team中删除,其中team.id=? 2021-04-25 14:08:16252信息sqlalchemy.engine.engine[在0.00073s中生成]1,
由于您处理的是ORM对象,因此只需检索最后一项,然后将其删除:

演示用ORM类 班级团队基础: __tablename\uu=团队 id=ColumnInteger,主键=True name=ColumnString50 秩=列整数 定义报告自我: 返回f Base.metadata.drop\u allengine Base.metadata.create_allengine 测试数据 使用Sessionengine作为会话: session.add_all [ 团队名称=加油工,排名=3, 团队名称=火焰,排名=1, 团队名称=Canucks,排名=2, ] session.commit 演示代码 使用Sessionengine作为会话: 最后地点团队=session.execute 选择team.order\u byTeam.rank.desc.limit1 .标量 打印最后位置团队 session.delete最后一个地点团队 session.commit SQL代码: 2021-04-25 14:08:16251信息sqlalchemy.engine.engine从team中删除,其中team.id=? 2021-04-25 14:08:16252信息sqlalchemy.engine.engine[在0.00073s中生成]1,
您可以使用select.order\u by来检索要删除行的主键,然后使用它来删除行。查询对象没有属性“select”MyTable是ORM类吗?是的,MyTable是ORM类您可以使用select.order\u by来检索要删除行的主键,然后用它来删除行。查询对象没有属性“select”MyTable是ORM类吗?是的,MyTable是ORM类您的解决方案解决了我的问题。可以通过一个SQLAlchemy查询完成任务吗?任务是什么?如果答案有帮助的话,请投赞成票,这样如果其他人问同样的问题,你的答案会很快找到我的问题。可以通过一个SQLAlchemy查询完成任务吗?任务是什么?如果答案有帮助,请投赞成票,这样如果其他人问同样的问题,就会很快找到答案
Obj.query.filter(table.id == obj['id']).delete()