Je n'arrive pas à faire fonctionner deux triggers en cascade ..
Jusqu' alors je supprimai tout en php, DELETE successif etc.
Pour economiser quelques requêtes et des lignes de code, je décide de profiter des déclencheurs ou plus communément appelé triggers.
Mon problème est le suivant :
J'ai 3 tables
'categorie'
'topic'
'message'
La table 'topic' possède un champ avec une contrainte d'intégrité sur le champ id (clef primaire) de la table 'categorie' ...
De même que la table 'message' possède un champ avec une contrainte d'intégrité sur le champ id (clef primaire) de la table 'topic' ...
Lorques je souhaite supprimer une categorie, j'aimerai que mes triggers réagissent en cascade :
Suppression des topics liés à la catégorie
Suppression des messages liés au topic
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 CREATE TRIGGER Suppr_Categ_Topics BEFORE DELETE ON categorie FOR EACH ROW DELETE FROM topic WHERE topic.categID = Old.idcategorie;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 CREATE TRIGGER Suppr_Topics_Mess BEFORE DELETE ON topic FOR EACH ROW DELETE FROM message WHERE message.topicID = Old.idtopic
Mais quand tout est (à mon sens) bien ficellé, j'obtien l'erreur suivante :
Cannot delete or update a parent row:
A foreign key constraint fails (`forum/message`, CONSTRAINT `fk_message_message` FOREIGN KEY (`messageoriginal`) REFERENCES `message` (`idmessage`) ON DELETE NO ACTION ON UPDATE NO ACTION)
comme si mes triggers n'existaient pas ... ou bien ai-je manqué un episode sur les triggers ?
Au secours !
Partager