[firebase-br] furo de codigo numa tabela...

Ubirajara Nogueira usnogueira em gmail.com
Sex Jun 29 11:48:11 -03 2007


Vc pode usar uma trigger before insert com o seguinte código:

DECLARE VARIABLE V_CONT SMALLINT;
DECLARE VARIABLE V_EXISTE SMALLINT;
DECLARE VARIABLE V_ULTIMO INTEGER;
DECLARE VARIABLE V_VAZIO INTEGER
begin
  select max(codigo)
     from tabela
   into :v_ultimo;
  V_CONT  = 1;
  while (V_CONT <= V_ULTIMO) do
  begin
    select cont(*)
      from tabela
    where codigo = :V_CONT
        into :V_EXISTE
   if (:V_EXISTE = 0) then
     V_VAZIO = V_CONT;
     V_CONT = V_ULTIMO;
  end
  new.codigo = v_vazio;
end

Com esse código vc pega a falha na sequencia e atribui ao campo
NEW.CODIGOda tabela.

Espero ter ajudado.

Em 29/06/07, Jeferson Oliveira <jefersonfoliveira em gmail.com> escreveu:
>
> Franncisco escreveu:
> > pessoal, existe algum sql para descobrir o proximo codigo disponivel
> dentro
> > de uma tabela?
>
> Parece-me que você não pesquisou nas mensagens antigas da lista antes
> de postar sua mensagem.
> Veja o tópico "Listar codigos que faltam na tabela", de 21/06/2007, lá
> eu listou um outro tópico postado algum tempo antes que apresenta
> algumas soluções para o seu problema.
>
>
> Abraço!
> Jeferson Oliveira
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para editar sua configuração na lista, use o endereço
> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>



-- 
Ubirajara Nogueira
Analista de Sistemas
Petrolina - PE



Mais detalhes sobre a lista de discussão lista