How to get last record

I need to get last record from db. I'm using sqlalchemy. At the moment, i'm doing like that:

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

But it's too heavy query. How can i get last record better?


Take a look at Query.first(). If you specify a sort on the right column, the first will be your last. An example could look like this:

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

Sometimes it is difficult to reformulate simple things:

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

but this worked for me:

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