A voir également:
- Delete avec jointure
- Hiberfil.sys delete - Guide
- Juste delete me - Guide
- SQL - Requête suppression avec jointure ✓ - Forum Bases de données
- Kismia delete account - Forum Réseaux sociaux
- SQL : delete [s/ une table] from [2 tables].. ✓ - Forum Programmation
6 réponses
je viens d essayer avec l exemple que j ai donnée ca marche mais pas pour ma vrai DB. Il doit avoir une différence donc je continue de chercher mais merci pour la reponse.
mais est ce qu il est possible de faire le delete en 1 requete?
ca m eviterais de gérer une transaction
mais est ce qu il est possible de faire le delete en 1 requete?
ca m eviterais de gérer une transaction
Voila bravo Papymucho !!
il faut ajouter on delete cascade au moment de la creation du clé etrangere!
la syntaxe sera la suivante :
alter table nom_de_la_table1
add foreign key(le_champ_cle_etrangere) references nom_de_la_table_2(le_champ_cle_primaire) on delete cascade
il faut ajouter on delete cascade au moment de la creation du clé etrangere!
la syntaxe sera la suivante :
alter table nom_de_la_table1
add foreign key(le_champ_cle_etrangere) references nom_de_la_table_2(le_champ_cle_primaire) on delete cascade
Salut,
Tu as un modèle conceptuel comprenant deux tables principales, et une table de liaison.
Donc, au départ, tu dois créer tes deux tables principales en premier, puis créer la table qui fait la liaison ensuuite.
Le processus de suppression est inverse.
Tu dois supprimer la table (ou seulement certains enregistrements) de la table de liaison, puis supprimer les tables principales.
Dans le cas présent, le mieux est de faire deux requêtes de suppression :
DELETE * FROM tlink WHERE tlink.t2_id = 15
DELETE * FROM t2 WHERE t2.id = 15
@+
Tu as un modèle conceptuel comprenant deux tables principales, et une table de liaison.
Donc, au départ, tu dois créer tes deux tables principales en premier, puis créer la table qui fait la liaison ensuuite.
Le processus de suppression est inverse.
Tu dois supprimer la table (ou seulement certains enregistrements) de la table de liaison, puis supprimer les tables principales.
Dans le cas présent, le mieux est de faire deux requêtes de suppression :
DELETE * FROM tlink WHERE tlink.t2_id = 15
DELETE * FROM t2 WHERE t2.id = 15
@+
Non, désolé, le Delete ne supporte pas la jointure...
Une autre solution est de faire une sous-requête qui simule une jointure.
Une autre solution est de faire une sous-requête qui simule une jointure.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Le topic date un peu, mais je viens d'avoir le même problème, résolu après 3 minutes de recherche....
Donc si ça peut aider d'autres personnes qui passent ici :
Faut rajouter la clause ON DELETE CASCADE à la création de la foreign key ex avec un alert table :
ALTER TABLE table1 ADD FOREIGN KEY (id) REFERENCES table2 (id) ON DELETE CASCADE;
cordialement...
Donc si ça peut aider d'autres personnes qui passent ici :
Faut rajouter la clause ON DELETE CASCADE à la création de la foreign key ex avec un alert table :
ALTER TABLE table1 ADD FOREIGN KEY (id) REFERENCES table2 (id) ON DELETE CASCADE;
cordialement...