Desculpe a demora!
Sim concordo com vocês, porem, Marcone, você acertou, não posso mudar :(
Estou testando uma mistura do seu com o do Prof. Cleverson.

Mas, ainda no assunto, seria melhor, ter um campo para o ano, outro para o 
número serial e outro pro DV? Ou isto não faz diferença, pensando em 
normatizações ou desempenho? Ou somente o DV separado?

Eduardo Az
Dep.TI
EMBRASIS
+55(11)8125-3845 TIM
[email protected]
-----Mensagem Original----- 
From: Marcone
Sent: Thursday, April 28, 2011 10:35 AM
To: Comunidade PostgreSQL Brasileira
Subject: Re: [pgbr-geral] uso de serial e digito verificador

Em 27 de abril de 2011 18:32, Leandro DUTRA
<[email protected]> escreveu:
> Precisas mesmo manter esse código?
>
>        Normalmente, o ideal é não misturar informações num atributo.
>
>        E, como identificador, o ideal seria uma chave natural, inda que
> composta; caso não seja possível, um código que não dependa de informação
> nenhuma.

Concordo com o Leandro e acrescento: não faz sentido (pelo pouco que
sabemos desse caso) manter um atributo com valores desse tipo que você
possa obtê-los facilmente como o ultimo dígito do ano, além de poder
causar confusão (2011, 2001 - 1 para ambos), o mesmo aplica-se ao DV
que é apenas para conferir a digitação do código.

Em todo o caso se não tiver como fugir dessa formatação de código (o
que eu acredito ser pouco provável) dá pra fazer no default do campo
da tabela:

drop table teste02 cascade;
drop sequence teste02_seq;
create sequence teste02_seq;

create table teste02(
codigo varchar(10) default substr(extract(year from now())::char(4),
4, 1) || to_char(nextval('teste02_seq'), '0000000') || gera_dv(),
nome varchar(10));

No seu caso bastaria alterar o valor default do campo e criar uma
função gera_dv().
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral 

_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a