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

Responder a