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 CASCADEpeut 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
patientspeut ainsi entraîner la suppression de dizaines de lignes réparties sur plusieurs tables, sans qu'aucunDELETEsupplé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