Ao invés disso:

    If NEW.codigo is null Or NEW.codigo = 0 then
       ..........
       If NEW.codigo is null Then
         NEW.codigo := 1;
       Else
          NEW.codigo := NEW.codigo + 1;
       End If;
    End If;

Use isso:

if TG_OP = 'INSERT' then
  NEW.codigo := COALESCE(NEW.codigo, 0) + 1;
end if;

Mas do que você ainda precisa?

-- 
Rodrigo Hjort
http://icewall.org/~hjort


2006/11/13, Paulo <[EMAIL PROTECTED]>:
> Exato, tenho um trigger que numero a coluna codigo:
>
> NEW.codigo := NEW.codigo + 1;
>
> Preciso saber como incrementar a coluna serie + codigo.
> Minha Primary KEY (codigo, serie)
>     .......
>     If NEW.codigo is null Or NEW.codigo = 0 then
>        ..........
>        If NEW.codigo is null Then
>          NEW.codigo := 1;
>        Else
>           NEW.codigo := NEW.codigo + 1;
>        End If;
>     End If;
>    .......
>
> Este trigger eu uso ante de incluir o registro na tabela.
>
>
>
>
>   ----- Original Message -----
>   From: Rodrigo Hjort
>   To: Grupo de Usuários do PostgreSQL no Brasil
>   Sent: Saturday, November 11, 2006 2:20 PM
>   Subject: Re: [PostgreSQL-Brasil] Ref: SEQUENCIAL
>
>
>   A solução que eu vejo é criar via trigger essa atribuição dos valores.
>
>   Não está claro no teu caso o que é passado para o INSERT e o que é
> controlado automaticamente ("codigo" ou "serie" ?). De qualquer forma, só
> mudará o nome do campo mesmo.
>
>   Dá pra usar uma seqüência (SEQUENCE) nessa solução, mas somente se você
> puder aceitar números vagos (aka "buracos").
>
>
>
>   2006/11/11, Paulo < [EMAIL PROTECTED]>:
>     Preciso saber como incluir dados numa tabela com numeracao sequencial,
> ou
>     seja, tenho um campo com o seguinte primary key (codigo + serie ),
> preciso
>     ao incluir que a sequencia fique da seguinte forma:
>
>     codigo - serie
>     1            0
>     2            0
>     3            0
>     4            0
>     1            1
>     2            1
>     3            1
>     1            2
>     2            2
>     etc.
>
>     Ao mudar a serie, uma nova numeracao é iniciada.
>
>     Paulo.
_______________________________________________
Grupo de Usuários do PostgreSQL no Brasil
Antes de perguntar consulte o manual
http://pgdocptbr.sourceforge.net/

Para editar suas opções ou sair da lista acesse a página da lista em:
http://pgfoundry.org/mailman/listinfo/brasil-usuarios

Responder a