it-swarm-pt.tech

Como obter o último registro

Eu preciso obter o último registro do banco de dados. Estou usando sqlalchemy. No momento, estou fazendo assim:

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

Mas é uma consulta muito pesada. Como posso melhorar o último registro?

50
dimazubrik

Dê uma olhada em Query.first() . Se você especificar classificar na coluna da direita, o primeiro será o seu último. Um exemplo pode ser assim:

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

Às vezes é difícil reformular coisas simples:

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

mas isso funcionou para mim:

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