Ответ 1
Посмотрите Query.first()
. Если вы укажете сортировку в правом столбце, первое будет вашим последним. Пример может выглядеть следующим образом:
obj = session.query(ObjectRes).order_by(ObjectRes.id.desc()).first()
Мне нужно получить последнюю запись из db. Я использую sqlalchemy. На данный момент я делаю так:
obj = ObjectRes.query.all()
return str(obj[-1].id)
Но это слишком тяжелый запрос. Как лучше получить последнюю запись?
Посмотрите Query.first()
. Если вы укажете сортировку в правом столбце, первое будет вашим последним. Пример может выглядеть следующим образом:
obj = session.query(ObjectRes).order_by(ObjectRes.id.desc()).first()
Иногда трудно переформулировать простые вещи:
SELECT * FROM ObjectRes WHERE id IN (SELECT MAX(id) FROM ObjectRes)
но это сработало для меня:
session.query(ObjectRes).filter(ObjectRes.id == session.query(func.max(ObjectRes.id)))