Maravilha Rodrigo, era so mesmo. Só mais uma pergunta. Tenho uma coluna (codbarra) com uma chave estrangeira, porque esta coluna deve ser unica, nao esta setada como NOT NULL; porque esta coluna é opcional, ocorre que quando dou um Insert e nao passo o valor do codbarra recebo uma advertencia para colocar algum valor na coluna. Como posso resolver isso ???
----- Original Message ----- From: "Rodrigo Hjort" <[EMAIL PROTECTED]> To: "Grupo de Usuários do PostgreSQL no Brasil" <[email protected]> Sent: Monday, November 13, 2006 10:46 AM Subject: Re: [PostgreSQL-Brasil] Ref: SEQUENCIAL 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 E-mail classificado pelo Identificador de Spam Inteligente Terra. Para alterar a categoria classificada, visite http://mail.terra.com.br/protected_email/imail/imail.cgi?+_u=paptere&_l=1,1163422034.620051.6297.alcala.hst.terra.com.br,6241,Des15,Des15 Esta mensagem foi verificada pelo E-mail Protegido Terra. Scan engine: McAfee VirusScan / Atualizado em 10/11/2006 / Versão: 4.4.00/4893 Proteja o seu e-mail Terra: http://mail.terra.com.br/ -- No virus found in this incoming message. Checked by AVG Free Edition. Version: 7.1.409 / Virus Database: 268.14.3/531 - Release Date: 12/11/2006 _______________________________________________ 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
