PaliSkill
SQL Intermédiaire

Leçon 6 / 9 — Chapitre 9: Mise en pratique : clinique

ON DELETE CASCADE : supprimer un patient et son historique

Comme au chapitre 6, ON DELETE CASCADE propage une suppression — et peut s'enchaîner sur deux niveaux dans une chaîne de trois tables.

CREATE TABLE consultations (
  id SERIAL PRIMARY KEY,
  patient_id INTEGER REFERENCES patients(id) ON DELETE CASCADE,
  medecin TEXT,
  montant NUMERIC
);

CREATE TABLE prescriptions (
  consultation_id INTEGER REFERENCES consultations(id) ON DELETE CASCADE,
  medicament TEXT,
  dosage TEXT,
  PRIMARY KEY (consultation_id, medicament)
);

Supprimer Amina (patient id 1) déclenche la cascade sur consultations : ses consultations 1 et 2 disparaissent. Cette suppression déclenche à son tour la cascade sur prescriptions : les prescriptions de la consultation 1 (Paracetamol, Ibuprofène) disparaissent également — un deuxième niveau de cascade, provoqué par le premier.

À retenir :

  • ON DELETE CASCADE peut se propager sur plusieurs niveaux si chaque table de la chaîne porte elle-même cette option vers la suivante.
  • Supprimer une seule ligne de patients peut ainsi entraîner la suppression de dizaines de lignes réparties sur plusieurs tables, sans qu'aucun DELETE supplémentaire ne soit écrit.

À vous de jouer : si seule consultations avait ON DELETE CASCADE (et pas prescriptions), supprimer Amina supprimerait-il quand même les prescriptions de sa consultation 1 ?

🔒

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