Supression en cascade

Messages postés
4
Date d'inscription
mardi 27 janvier 2015
Dernière intervention
8 juin 2015
- - Dernière réponse :  juscia - 15 juil. 2016 à 12:58
Bonjour, j'ai quatre tables dans ma base de donnée sous phpmyadmin qui sont:
region(id, nom)
ville(id_v,nom_v, #id)
commune(id_c,nom_c,#id_v)
j'aimerais supprimer tout ces element via un bouton supprimer en effectuant la requete on delete cascade et je ne sais comment m'y prendre
aidez moi svp
merci
Afficher la suite 

Votre réponse

3 réponses

Messages postés
1293
Date d'inscription
mardi 28 octobre 2003
Statut
Contributeur
Dernière intervention
3 juillet 2015
0
Merci
Salut,

Script pour Firebird (mais ça ne doit pas être très différent sous mySQL...) :

/* Création table des régions */
CREATE TABLE REGIONS (
ID_REGION INTEGER NOT NULL,
NOM_REGION VARCHAR(50) NOT NULL
);

/* Création clé primaire sur REGION */
ALTER TABLE REGIONS
ADD PRIMARY KEY(ID_REGION);

/* Création table des villes */
CREATE TABLE VILLES (
ID_VILLE INTEGER NOT NULL,
NOM_VILLE VARCHAR(50) NOT NULL,
FK_ID_REGION INTEGER NOT NULL
);

/* Création clé primaire sur VILLES */
ALTER TABLE VILLES
ADD PRIMARY KEY(ID_VILLE);

/* Création clé étrangère VILLES-REGIONS */
ALTER TABLE VILLES
ADD FOREIGN KEY(FK_ID_REGION) 
REFERENCES REGIONS(ID_REGION)
ON DELETE CASCADE;  /* Tu peux aussi ajouter ON UPDATE CASCADE si tu veux que la clé étrangère soit mise à jour lors de l'update de la clé de REGIONS */

/* Création de la table des communes */
CREATE TABLE COMMUNES(
ID_COMM INTEGER NOT NULL,
NOM_COMM VARCHAR(50) NOT NULL,
FK_ID_VILLE INTEGER NOT NULL
);

/* Création clé primaire sur COMMUNES */
ALTER TABLE COMMUNES
ADD PRIMARY KEY(ID_COMM);

/* Création clé étrangère COMMUNES-VILLES */
ALTER TABLE COMMUNES
ADD FOREIGN KEY(FK_ID_VILLE) 
REFERENCES VILLES(ID_VILLE)
ON DELETE CASCADE;


Si derrière ça, tu exécute la requête :
DELETE FROM REGIONS
WHERE ID_REGION = [N° de la région à supprimer];

Les villes rattachées à cette région, et les communes rattachées à ces villes seront également supprimées...

Simon
Commenter la réponse de sp40
Messages postés
3
Date d'inscription
dimanche 19 juin 2016
Dernière intervention
20 juin 2016
0
Merci
<gras>On delete cascade</gras>
n'est pas une requette, mais plus tot une option dans la commande de creation de contarinte de clé etrangere a mon avis
donc moi je te dirais d’écrire une procédure de suppression de données, tu va passé les tables en paramètre
Commenter la réponse de Guba92
0
Merci
la suppression doit sûrement être facile au cas où les tables ayant les clés étrangères ont la notation ON DELETE CASCADE à la fin. C'est à dire, à la suppression d'une ligne dans la table de réference, toutes les données réfenrencées seront supprimées.
Commenter la réponse de juscia

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.