Ultimo registo com o maximo desempenho

8 respostas Resolvido
postgresql
Gabriel_Sereno

Preciso de pegar o ultimo ID do meu banco de dados com o máximo de rapidez e desempenho.

8 Respostas

Dragoon

Qual Banco e Qual linguagem? Infelizmente ficou vago, nos coloque a situação atual

Gabriel_Sereno

Postgresql, eu queria pegar o ultimo ID ou registro do meu banco sem ter um delay enorme.

Atualmente utilizo: SELECT MAX (cod_fornecedor) AS max FROM fornecedor;

javaflex

Qual objetivo de fazer esse max?

Gabriel_Sereno

De pegar o ultimo código, já que o banco não esta implementado com o autoincremento precisando de fazer isso no próprio sistema.

javaflex

Ideal seria usar sequence, usar MAX pra isso é furada, mais de um usuário pode pegar o mesmo id, além de exigir mais do banco. Mas se não pode migrar, então veja se falta criar índice para esta coluna.

Dragoon
Solucao aceita

Acredito que assim seja mais prático, espero que cod_fornecedor seja a chave primária:

SELECT cod_fornecedor FROM fornecedor ORDER BY cod_fornecedor DESC LIMIT 1

faça os teste e nos fale!

Gabriel_Sereno

Muito obrigado, funcionou corretamente, eu demorei a responder também porque eu estava tentando fazer com Trigger e Procedure, mas vou pelo caminho mais fácil. Muito obrigado pela ajuda.

pmlm

Mesmo não alterando o campo para autoincremento, podes criar uma sequência que inicie com o valor igual ao atual máximo e usar a partir daí a sequence para obter o nextval.

Criado 5 de fevereiro de 2017
Ultima resposta 7 de fev. de 2017
Respostas 8
Participantes 4