Trigger de suppression dans une autre table ne fonctionne pas
Bonjour,
Soit l'association suivante :
Passage_diplome -0,n----prouver----0,1- Fichier
Traduction :
Un fichier peut prouver un passage de diplôme et un passage de diplôme peut être prouvé par plusieurs fichiers.
J'ai donc une table associative pour matérialiser l'association "prouver". Dans cette table, j'ai évidemment des clés étrangères référençant d'une part le passage de diplôme et d'autre part le fichier.
Si je supprime un fichier, la clé étrangère supprime la ligne correspondante dans la table associative.
Si je supprime un passage de diplôme, la clé étrangère supprime la ligne correspondante dans la table associative.
Mais dans ce dernier cas, je veux aussi supprimer le fichier s'il existe puisqu'il ne prouve plus rien.
J'ai donc créé un trigger dans la table associative :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| DELIMITER //
CREATE TRIGGER pef_public.tg_fpp_after_delete
AFTER DELETE ON tj_fic_prouver_pdi_fpp
FOR EACH ROW
/****************************************************************************************************************
Base : pef_public
Objet : Trigger
Auteur : Philippe Leménager
Version : V0.1 - plemenager - 2020-04-28 - Création
Description : Supprime le fichier prouvant le passage d'un diplôme
Utile si la suppression de la ligne dans tj_fic_prouver_pdi_fpp vient en cascade d'une supression dans te_passage_diplome_pdi
Utilise : te_fichier_fic Table des fichiers joints
Historique :
*****************************************************************************************************************/
BEGIN
DELETE FROM te_fichier_fic
WHERE fic_id = OLD.fpp_id_fichier;
END //
DELIMITER ; |
Mais c'est sans effet ; j'ai toujours la ligne dans la table des fichiers. C'est comme si le trigger ne se déclenchait pas en cas de suppression par la cascade d'une clé étrangère.
Ou alors j'ai mal programmé mon trigger ?