Então Danilo, FKs no meu modo de entender não que deva ter valores únicos, mas a TabelaA de referencia devem sim ter valores únicos, mas na TabelaB podem ser N valores, é o velho 1(A) para N(B)
TabelaA->Codigo 1 2 3 4 TabelaB->Codigo (FK para TabelaA) 1 1 1 2 2 2 3 3 3 ... Veja que os valores da TabelaB estão contidos na TabelaA e o FK me parece que exige isso. A duvida é se a TabelaB poderia estar ou não na TabelaA, mas quando estiver deve ter o valor idêntico. Pelo que vejo isso só é possível por Functions como você citou. Em 26 de abril de 2013 09:34, Danilo Silva <danilo.dsg.go...@gmail.com>escreveu: > > > > Em 26 de abril de 2013 09:02, Marcelo da Silva <marc...@ig.com.br>escreveu: > > Sei que ao criamos uma FK o campo lincado devem ter o mesmo conteúdo nas >> tabelas A e B >> >> Exemplo: >> TabelaA->Codigo = 123 >> TabelaB->Codigo = 123 FK->TabelaA >> >> Tenho a seguinte duvida: >> >> TabelaB->Codigo pode ser >> 0 >> 123 >> 0 >> 456 >> etc >> >> Queria saber se existe uma FK que diga que quando o valor de B for > 0 >> ele esteja na tabela A, senão ele permite que seja 0 (somente) >> >> Isso existe, ou só por Triggers / Procedures ? >> >> Até onde eu conheço por FKs, o campo referenciado deve possuir valores > únicos. Creio que para seu caso deverás criar uma function que faça essa > verificação. > > []s > Danilo > > > _______________________________________________ > pgbr-geral mailing list > pgbr-geral@listas.postgresql.org.br > https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral > > -- Marcelo Silva ---------------------------------------------------------------- Desenvolvedor Delphi / PHP My Postgres database Cel.: (11) 99693-4251
_______________________________________________ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral