Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

a chave estrangeira sempre faz referência a uma chave exclusiva em outra tabela?


Pelo padrão SQL, uma chave estrangeira deve fazer referência à chave primária ou a uma chave exclusiva da tabela pai. Se a chave primária tiver várias colunas, a chave estrangeira deverá ter o mesmo número e ordem de colunas. Portanto, a chave estrangeira faz referência a uma linha exclusiva na tabela pai; não pode haver duplicatas.

Re seu comentário:

Se T.A é uma chave primária, então não, você não pode ter duplicatas. Qualquer chave primária deve ser exclusiva e não nula. Portanto, se a tabela filho tiver uma chave estrangeira referenciando a chave primária do pai, ela deverá corresponder a um valor exclusivo não nulo e, portanto, referenciará exatamente uma linha na tabela pai. Nesse caso, você não pode criar uma linha filho que faça referência a várias linhas pai.

Você pode crie uma linha filha cuja coluna de chave estrangeira seja NULL e, nesse caso, não faça referência a nenhuma linha na tabela pai.