2013/4/26 Marcelo da Silva <[email protected]> > 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 ? > > > NÃO. Isso vai ferir a restrição de integridade referencial.
MAS, há uma exceção. Quando o campo da tabela que referencia (TabelaB) aceitar NULL, você pode colocar o valor do campo como NULL e, nesse caso, o PostgreSQL não vai fazer a checagem da FK. Atenciosamente, -- Matheus de Oliveira Analista de Banco de Dados Dextra Sistemas - MPS.Br nível F! www.dextra.com.br/postgres
_______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
