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 : 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 ;
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 ?