L’intégrité référentielle garantit que la valeur d’une clé étrangère dans une table correspond toujours à une valeur existante dans la table référencée (la table "parente").
Exemple :
Deux tables : fournisseur
(parent) et stock
(enfant)
stock.num_fournisseur
est une clé étrangère qui fait référence à fournisseur.num_fournisseur
.Par défaut, toute opération qui violerait l'intégrité référentielle est rejetée :
stock
avec un num_fournisseur
qui n’existe pas dans fournisseur
→ ❌ ERREURfournisseur
alors que le num_fournisseur
est encore utilisé dans stock
→ ❌ ERREURPour gérer les modifications sans violer l'intégrité, on peut définir des comportements automatiques via les options suivantes sur la clé étrangère :
Si un fournisseur est supprimé ou modifié, alors :
stock
qui y font référence sont automatiquement supprimées.FOREIGN KEY (num_fournisseur)
REFERENCES fournisseur(num_fournisseur)
ON DELETE CASCADE
ON UPDATE CASCADE
Exemple : Supprimer un fournisseur → toutes les lignes de stock
liées sont aussi supprimées.
Si la ligne du fournisseur est supprimée ou modifiée, la valeur de la clé étrangère dans stock
devient NULL.