Leçon 5 / 10 — Chapitre 6: Modifier les données avec rigueur
ON DELETE CASCADE
Par défaut, une clé étrangère bloque la suppression d'une ligne encore référencée ailleurs : supprimer un abonné qui a des inscriptions échouerait, pour préserver la cohérence des données. ON DELETE CASCADE change ce comportement : la suppression se propage automatiquement.
CREATE TABLE inscriptions (
abonne_id INTEGER REFERENCES abonnes(id) ON DELETE CASCADE,
formule TEXT,
date_debut DATE,
PRIMARY KEY (abonne_id, formule)
);
Avec cette contrainte, supprimer un abonné de abonnes supprime automatiquement toutes ses lignes dans inscriptions — sans instruction DELETE supplémentaire à écrire sur inscriptions.
À retenir :
- Sans option particulière, une clé étrangère empêche de supprimer une ligne encore référencée ailleurs.
ON DELETE CASCADEpropage automatiquement la suppression aux lignes qui référencent la ligne supprimée.- Cette option se déclare une seule fois, à la création de la contrainte (
REFERENCES ... ON DELETE CASCADE), et s'applique ensuite à chaque suppression, sans rien à écrire de plus.
À vous de jouer : sans ON DELETE CASCADE, que faudrait-il faire avant de pouvoir supprimer un abonné qui a encore des inscriptions ?
Continuez ce module
Débloquez les leçons restantes ainsi que la certification finale.
2 500 XOF / 3,81 € / 4,15 $
Débloquez les 80 leçons restantes de ce module
Votre paiement est vérifié avant l'activation de l'accès