2008/3/3 Lucimar Teles <[EMAIL PROTECTED]>: > > Tenho uma tabela onde a chave é gerada apartir de uma sequencia, como a > sequencia sempre incrementa independente se o registro foi inserido ou não, > qual seria a forma mais semples para identificar as numerações que ficaram > vaga na tabela, para serem utilizadas posteriormente.
Essa pergunta e' frequente o suficiente que ja' deveria estar num FAQ qualquer, se ja' nao estiver. A primeira pergunta que me vem na cabeca ao me deparar com essa pergunta e' "pra que?". A segunda coisa que me vem na cabeca e' "bom, ele deve ter uma boa razao para querer sequencias sem buraco" ja' que o trabalho para "preencher" os buracos nao e' trivial. Se voce realmente, absolutamente precisa de sequencias sem buracos, entao seria melhor usar sequencias para as chaves estrangeiras, e usar um codigo seu gerado atomicamente na sua aplicacao ou banco de dados, que lhe daria uma outra sequencia sem buracos. Nos usamos esse metodo em alguns lugares da nossa aplicacao, mas e' um saco. Para responder a sua pergunta, creio que a maneira mais simples seja uma funcao em PL/pgSQL (ou outra PL, como PL/Python) que receba o nome de uma tabela, e faca uma busca sequencial procurando pelos buracos, e retornando o conjunto de numeracoes nao utilizadas. Roberto _______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
