【发布时间】:2021-07-19 06:32:53
【问题描述】:
我需要执行下一个查询:
DELETE FROM <table_name>
ORDER BY <column_name> DESC LIMIT 1
我在尝试:
query = session.query(MyTable)
query.order_by(MyTable.my_column.desc()).limit(1).delete()
error: Can't call Query.update() or Query.delete() when order_by() has been called
我目前的方式(我想摆脱循环):
query = session.query(MyTable)
for item in query.order_by(MyTable.my_column.desc()).limit(1).all():
query.filter(MyTable.id == item.id).delete()
【问题讨论】:
-
您可以使用 select().order_by() 来检索要删除的行的主键,然后使用它来删除该行。
-
查询对象没有属性'select'
-
MyTable是 ORM 类吗? -
是的,MyTable 是一个 ORM 类
标签: python sql sqlalchemy orm