Qu’est-ce que l’intégrité référentielle ?

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)

Comportement par défaut : REJECT (RESTRICT ou NO ACTION)

Par défaut, toute opération qui violerait l'intégrité référentielle est rejetée :

Stratégies alternatives

Pour 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 :

1. ON DELETE / ON UPDATE CASCADE

Si un fournisseur est supprimé ou modifié, alors :

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.

2. ON DELETE / ON UPDATE SET NULL

Si la ligne du fournisseur est supprimée ou modifiée, la valeur de la clé étrangère dans stock devient NULL.