PaliSkill
← SQL Intermédiaire

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 CASCADE propage 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 l'attestation finale.

7 500 XOF / 11,43 € / 12,46 $

Débloquez les 87 leçons restantes de ce module

Pour vous communiquer où envoyer le paiement.

Moyen de paiement souhaité

Nous vous contactons pour le paiement — activé dès réception.