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