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 :
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.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 ;
Ou alors j'ai mal programmé mon trigger ?
Partager