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.

Em 18 de outubro de 2011 16:36, Pedro Costa <pedrocostaa...@sapo.pt> escreveu:
> São todos da mesma tabela por isso é melhor uma check constraint então.
>
> e sim localização é um campo.será que alguém pode fazer-me exemplos de
> uma check constraint para este caso?
>
> 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
>
>
>
>
> Obrigado ao Alexander, Edson e ao João.
>
> ABraço
>
>
>
> Com os melhores cumprimentos,
>
> Pedro Costa
> Geógrafo
> Especializado em Sistemas de Informação Geográfica e Ordenamento do Território
>
>
>
> Em 18-10-2011 17:34, Alexsander Rosa escreveu:
>> Se "localização" é um campo uma CHECK CONSTRAINT pode resolver.
>>
>> Em 18 de outubro de 2011 14:18, Pedro Costa<pedrocostaa...@sapo.pt>  
>> escreveu:
>>> Olá pessoal,
>>>
>>> Tenho a seguinte dúvida, alguém sabe como faço no pgadmin para adicionar
>>> regras deste tipo:
>>>
>>> exemplos:
>>> se o campo "cod" é 22 a localização só pode ser 22 ou 23
>>> se o campo "cod" é "1e" a localização só pode ser 1 ou 2
>>>
>>> Obrigado
>>>
>>> --
>>> Com os melhores cumprimentos,
>>>
>>> Pedro Costa
>>> Geógrafo
>>> Especializado em Sistemas de Informação Geográfica e Ordenamento do 
>>> Território
>>>
>>
>>
> _______________________________________________
> pgbr-geral mailing list
> pgbr-geral@listas.postgresql.org.br
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>



-- 
Atenciosamente,
Alexsander da Rosa
http://rednaxel.com
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a