Battisti – Blog

Tecnologia, Web e um pouco de cultura inútil

battisti On junho - 16 - 2009

O Problema

Precisava selecionar a ultima linha inserida em uma tabela do meu banco de dados.

A Solução

 select * from tabela order by id desc limit 1

Com isso eu seleciono todas as colunas da ultima pessoa inserida

Conclusão

Existe outras maneiras porém até agora essa foi a mais simples que eu encontrei.

Categories: SQL

3 Responses

  1. João Mateus disse:

    Tenho visto os teus posts sobre o postgres cm atenção. Foi um SGBD que gostei muito de estudar.

    Quanto a este teu problema nao sei qual o âmbito, mas se for para uma solução que tenha q ser usada muitas vezes, estares a fazer uma ordenação é uma operação cara.
    O SELECT tem uma opção RETURNNING em que podes devolver o ID e fazer depois uma segunda pesquisa o que é bastante melhor.

    abraço

  2. battisti disse:

    Salve joão.

    Não conhecia o RETURNING, achei muito útil, no meu caso em particular minha SQL não é executada imediatamente após o INSERT mas todos caso fica registrada ai a dica, aprendi mais uma.

    Dando uma pesquisada descobri que esta clausula foi inserida a partir da versão 8.2 do banco, então fica ai a dica, se usar banco 8.2+ use o RETURNING, abaixo vai um exemplo de como ele funciona

    INSERT INTO distributors (did, dname) VALUES (DEFAULT, ‘XYZ Widgets’)
    RETURNING did;

  3. Edvaldo disse:

    Muito obrigado!
    Era exatamente o que eu estava procurando…
    Foi de grande ajuda!

Leave a Reply