Message d'erreur lors de l'utilisation d'un trigger
	
	
		Bonjour,
Le trigger :
	Code:
	
1 2 3 4 5 6 7 8 9
   | CREATE TRIGGER del_pers BEFORE INSERT
ON routage_pers_tmp
FOR EACH ROW
BEGIN
IF ((SELECT COUNT(A.NUM_CARTE) FROM adherent A WHERE A.NUM_CARTE=NEW.NUM_CARTE)=0)
THEN
INSERT INTO routage_pers_tmp SELECT NEW.*;
END IF;
END;  | 
 Si le NUM_CARTE de la ligne qu'on tente d'insérer dans routage_pers_tmp n'est pas dans la table adherent, on l'insère.
Le trigger se crée correctement.
Mais lors de l'exécution :
==> erreur mysql : 
	Citation:
	
		
		
			Can't update table 'routage_pers_tmp1' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.
			
		
	
 2ème tentative :
	Code:
	
1 2 3 4 5 6 7 8 9
   | CREATE TRIGGER del_pers BEFORE INSERT
ON routage_pers_tmp1
FOR EACH ROW
BEGIN
IF ((SELECT COUNT(A.NUM_CARTE) FROM adherent A WHERE A.NUM_CARTE=NEW.NUM_CARTE)=0)
THEN
INSERT INTO routage_pers_tmp2 SELECT NEW.* FROM routage_pers_tmp1;
END IF;
END;  | 
 ==> UNknown table NEW.:(
Merci de votre aide ...
	 
	
	
	
		Message d'erreur lors de l'utilisation d'un trigger
	
	
		Merci pour la réponse.
J'ai modifié le code pour satisfaire phpmyadmin :
	Code:
	
1 2 3 4 5 6 7 8 9 10 11 12 13 14
   |  
CREATE TRIGGER del_pers BEFORE INSERT
ON routage_pers_tmp
FOR EACH ROW
 
begin
declare t  boolean;
  SELECT COUNT(A.NUM_CARTE)>0 into t
  FROM adherent A
  WHERE A.NUM_CARTE=NEW.NUM_CARTE;
  if t then
    select true; -- déclenchera une erreur et donc l'annulation de l'insertion
  end if;
end$$ | 
 Maintenant code d'erreur :
Not allowed to return a result set from a trigger
merci