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