Marcelo, para ficar mais facil, supondo que a tabelaA fosse tabelaProduto e a tabelaB fosse tabelaNotaFiscal, por exemplo, dado que para cada produto eu tenho um codigo que faz parte da PK (chave primaria) eu poderia ter varias repetições deste valor na tabela de nota fiscal na coluna FK que referencia essa PK desde que essa coluna não tivesse outra restrição, como ser UK (uniqqe key), mesmo que essa coluna da FK tenha restrição de NULL você poderia deixar vários nulos ou várias notas fiscais vendendo o mesmo produto, logo repetiria a FK. Isso é permitido pois não sendo PK ou UK pode repetir.
2013/4/26 Marcelo da Silva <[email protected]> > 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 > <[email protected]>escreveu: > >> >> >> >> Em 26 de abril de 2013 09:02, Marcelo da Silva <[email protected]>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 >> [email protected] >> 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 > [email protected] > https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral > >
_______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
