contrainte de clé étrangère (FOREIGN KEY)
La contrainte de clé étrangère garantit que la ou les colonnes membres ne peuvent contenir que des valeurs qui existent dans la ou les colonnes spécifiées de la table principale.Ces colonnes de référence sont souvent appelées colonnes de destination.Ils doivent être la clé primaire ou une clé unique dans la table de destination.Ils peuvent ne pas avoir de contrainte NOT NULL`
s’ils font partie de la contrainte de clé unique.
Les colonnes de clés externes ne nécessitent pas de contrainte `NOT NULL'.
Au niveau de la colonne, la contrainte de clé étrangère est définie en utilisant le mot-clé REFERENCES
.
... ,
ARTIFACT_ID INTEGER REFERENCES COLLECTION (ARTIFACT_ID),
Dans cet exemple, la colonne ARTIFACT_ID fait référence à une colonne du même nom dans la table COLLECTION.
Une clé étrangère sur une ou plusieurs colonnes peut être définie au niveau de la table.Les clés étrangères sur plusieurs colonnes ne peuvent être définies qu’au niveau de la table.
La syntaxe pour définir une clé étrangère au niveau de la table est légèrement différente.Après avoir défini toutes les colonnes, avec leurs contraintes de niveau colonne, vous pouvez définir une contrainte de clé étrangère de niveau table nommée en utilisant les mots-clés FOREIGN KEY
et les noms des colonnes pour lesquelles elle s’applique :
... ,
CONSTRAINT FK_ARTSOURCE FOREIGN KEY(DEALER_ID, COUNTRY)
REFERENCES DEALER (DEALER_ID, COUNTRY),
Notez que les noms des colonnes dans la table cible (maître) peuvent être différents de ceux de la clé externe.
Note
|
Si aucune colonne cible n’est spécifiée, la clé étrangère fait automatiquement référence aux colonnes de la clé primaire de la table cible. |