Oracle
 sql >> Database >  >> RDS >> Oracle

la chiave esterna fa sempre riferimento a una chiave univoca in un'altra tabella?

Secondo lo standard SQL, una chiave esterna deve fare riferimento alla chiave primaria o a una chiave univoca della tabella padre. Se la chiave primaria ha più colonne, la chiave esterna deve avere lo stesso numero e lo stesso ordine di colonne. Pertanto la chiave esterna fa riferimento a una riga univoca nella tabella padre; non possono esserci duplicati.

Re il tuo commento:

Se T.A è una chiave primaria, quindi no, non puoi avere duplicati. Qualsiasi chiave primaria deve essere univoca e non nulla. Pertanto, se la tabella figlio ha una chiave esterna che fa riferimento alla chiave primaria del genitore, deve corrispondere a un valore univoco non nullo e quindi fa riferimento esattamente a una riga nella tabella padre. In questo caso non puoi creare una riga figlio che faccia riferimento a più righe padre.

puoi crea una riga figlio la cui colonna della chiave esterna è NULL, nel qual caso non fa riferimento a nessuna riga nella tabella padre.