Em 18 de outubro de 2011 16:47, Alexsander Rosa
<alexsander.r...@gmail.com>escreveu:

> Exemplo: ALTER TABLE tabela ADD CONSTRAINT nome_constraint CHECK (
> (cod='22' and localizacao IN (22,23)) or (cod='23' and localizacao IN
> (2,1)) or (cod='1e' and localizacao = 1 and desenho = 1) );
>
> Lembrando que o CHECK não vai COLOCAR valores nos campos, apenas vai
> CHECAR e dar erro no INSERT/UPDATE se falhar o teste.
>

Pessoal,
fiquei com uma dúvida se tivesse um cenario parecido porem não fossem apenas
3 regras abaixo:
se o campo "cod" é 22, a localização só pode ser 22 ou 23
se o campo "cod" é 23, a localização só pode ser 2 ou 1
se o campo "cod" é 1e os campos localização e desenho obtêm valor 1

fossem umas 100 regras e houvesse possibilidade de surgirem novas.
Ainda sim o mais correto seria uma check constraint ou seria melhor mapear
essas regras em uma tabela. E inserir ou atualizar apenas se houvesse uma
regra cadastrada?

[]'s

Edson Souza
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a