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

5 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!

  4. toninho disse:

    Tem outras formas mais simples … como a função mysql_insert_id(); que retorna o ultimo id registrado na query mais recente

  5. Kiver disse:

    puta que pariu, tu é burro toninho, o cara pediu pro banco postgres e nao mysql.

Leave a Reply