Oracle
 sql >> Base de données >  >> RDS >> Oracle

la clé étrangère fait-elle toujours référence à une clé unique dans une autre table ?

Selon le standard SQL, une clé étrangère doit faire référence soit à la clé primaire, soit à une clé unique de la table parent. Si la clé primaire a plusieurs colonnes, la clé étrangère doit avoir le même nombre et le même ordre de colonnes. Par conséquent, la clé étrangère fait référence à une ligne unique dans la table parent ; il ne peut y avoir aucun doublon.

Concernant votre commentaire :

Si T.A est une clé primaire, alors non, vous ne pouvez pas avoir de doublons. Toute clé primaire doit être unique et non nulle. Par conséquent, si la table enfant a une clé étrangère référençant la clé primaire du parent, elle doit correspondre à une valeur unique non nulle et référence donc exactement une ligne dans la table parent. Dans ce cas, vous ne pouvez pas créer une ligne enfant faisant référence à plusieurs lignes parentes.

Vous pouvez créer une ligne enfant dont la colonne de clé étrangère est NULL, auquel cas elle ne référence aucune ligne dans la table parent.