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

Responder a