On DELETE CASCADE Many to Many

Avatar de l’utilisateur
Eléphanteau du PHP | 38 Messages

13 sept. 2017, 15:59

Bonjour,

J'apprend donc le PHP Procédurale, mais j'arrive à un soucis qui ne m'est jamais arrivé.
En effet j'ai trois table en Many To Many comme ceci:

http://www.plixup.com/pics_core3/150512 ... _15_39.png

Je voudrais enfaite ajouter un DELETE ON CASCADE mais je ne l'ai jamais fait.
Je voudrais que lorsque je suite effacer un mail dans la table MAILS il me vire aussi la relation dans la table group_mail_j (jointure)
Malgrès la documentation importante sur internet, je n'arrive pas à me modéliser ça pour la requete SQL à faire pour ajouter le CASCADE ON DELETE.

Merci d'avance.

Avatar de l’utilisateur
Eléphanteau du PHP | 38 Messages

14 sept. 2017, 16:25

Up

Mammouth du PHP | 531 Messages

14 sept. 2017, 20:07

Ce qu'il faut retenir, c'est à la table fille( celle qui importe la clé étrangère) de définir la contrainte d'intégrité.
La syntaxe est ici

Code : Tout sélectionner

ALTER TABLE group_mail_j ADD CONSTRAINT nom_contrainte FOREIGN KEY (mail_id) REFERENCES mails(id) ON DELETE CASCADE

Avatar de l’utilisateur
Eléphanteau du PHP | 38 Messages

14 sept. 2017, 22:37

Ce qu'il faut retenir, c'est à la table fille( celle qui importe la clé étrangère) de définir la contrainte d'intégrité.
La syntaxe est ici

Code : Tout sélectionner

ALTER TABLE group_mail_j ADD CONSTRAINT nom_contrainte FOREIGN KEY (mail_id) REFERENCES mails(id) ON DELETE CASCADE
Merci, mais le problème est qu'avec ta requète j'obtient le résultat suivant:

Code : Tout sélectionner

#1215 - Impossible d'ajouter des contraintes d'index externe