Supprimer plusieurs tables avec ses cles etrangeres

Résolu/Fermé
amine448 - 23 juil. 2020 à 23:53
 Amine448 - 28 juil. 2020 à 15:41
Bonjour .

J'ai une table qui contient 5 cles etrangeres, je voudrais supprimer cette table et les tables ayant comme id ses cles etrangeres, en utilisant uniquement la cle primaire de ma table principale.

Composition de ma table :
MaTablePrincipale Cle primaire : (idTablePrincipale)
Cle etrangere(idTable1, idTable2, idTable3, idTable4, idTable5)

Je veux que si je supprime MaTablePrincipale, les tables etrangeres avec : idTable1, idTable2, idTable3, idTable4, idTable5 soit supprimes aussi, tout en utilisant idTablePrincipale.

C'est possible ?

Merci !
A voir également:

3 réponses

RV71 Messages postés 509 Date d'inscription mardi 14 avril 2020 Statut Membre Dernière intervention 15 avril 2024 31
24 juil. 2020 à 17:47
1
D’accord. Je vais me documenter là dessus. Merci !
0
Bonjour,

Ce que vous voulez faire est impossible, par ce que pour supprimer une table, on utilise la commande Drop NomDeLaTable.

Vous ne pouvez alors supprimer que la table que vous avez indiqué dans votre commande.

La suppression cascade, ne concerne que la manipulation des données. Par exemple quand vous supprimer une occurrence d'une table mère (qui donne sa clé) à d'autres tables filles (qui reçoivent la clé de la table dite mère), vous précisez dans votre programme la suppression de ces table dites filles.

Je précise également que lorsque vous voulez supprimer une table mère, veillez à commencer par supprimer la table fille avant ladite table mère.
1
Bonjour. Je me suis mal exprimé Je ne souhaites pas supprimer les tables, mais plutot les données de la table.

En fait je veux supprimer une donnée de la table mere a partir de sa clé primaire. Ma table mere contient les id de ses tables filles, mais les tables filles ne contiennent pas l'id de table mere.

J'ai essayé la suppression cascade mais elle ne marche pas (ON DELETE CASCADE) . Donc les filles doivent recevoir la cle de la mere pour que ca fonctionne ?
0
Justhe-Arly > amine448
Modifié le 27 juil. 2020 à 20:43
Une table est dite mere lorsqu'elle donne sa clé à une ou plusieurs autres tables.
Une autre table est dite fille lorsqu'elle reçois la ou les clés d'une ou plusieurs tables dites mères.

Dans ton cas, la table qui reçoit les clés des cinq autres tables, est une table fille. Tu peux supprimer les occurrences qui y sont logées. Si cette table ne donne pas à son tour sa clé à une autre table, cela n'aura aucun impact sur les tables qui lui donnent leurs clés.
0
Amine448 > Justhe-Arly
28 juil. 2020 à 15:41
Ok. Merci !
0
RV71 Messages postés 509 Date d'inscription mardi 14 avril 2020 Statut Membre Dernière intervention 15 avril 2024 31
27 juil. 2020 à 21:10
Un lien vaut mieux qu'un long discours :
https://openclassrooms.com/fr/courses/1959476-administrez-vos-bases-de-donnees-avec-mysql/1965264-options-des-cles-etrangeres

Mais en fin de compte, je ne sais pas si c'est ce que tu veux faire, car ce n'est pas clair ton explication.

A+
1
Merci !
0