Подтвердить что ты не робот

Как получить последнюю запись

Мне нужно получить последнюю запись из db. Я использую sqlalchemy. На данный момент я делаю так:

obj = ObjectRes.query.all()
return str(obj[-1].id)

Но это слишком тяжелый запрос. Как лучше получить последнюю запись?

4b9b3361

Ответ 1

Посмотрите Query.first(). Если вы укажете сортировку в правом столбце, первое будет вашим последним. Пример может выглядеть следующим образом:

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

Ответ 2

Иногда трудно переформулировать простые вещи:

SELECT * FROM ObjectRes WHERE id IN (SELECT MAX(id) FROM ObjectRes)

но это сработало для меня:

session.query(ObjectRes).filter(ObjectRes.id == session.query(func.max(ObjectRes.id)))