SELECT via un Trigger sous Mysql

Fermé
pcsystemd Messages postés 691 Date d'inscription dimanche 27 novembre 2005 Statut Membre Dernière intervention 15 janvier 2024 - 26 août 2010 à 11:21
pcsystemd Messages postés 691 Date d'inscription dimanche 27 novembre 2005 Statut Membre Dernière intervention 15 janvier 2024 - 26 août 2010 à 14:39
Bonjour,

c'est mon premier Trigger et j'avoue que je suis un peu perdu. Je vous expose mon problème.

But de mon Trigger :

1 - Un INSERT dans matable1 déclenche un INSERT dans ma table users (ça cela fonctionne)

2 - je dois pouvoir insérer dans ma table users_roles, le dernier "uid" inséré dans ma table users ainsi que le "rid" de la table role qui correpond au champ "fonction" de matable1. Pour cela je dois faire un SELECT avec jointure sur mes tables : matable1,users et role :

matable1
uid
fonction

users
uid

role
rid
na(qui correspond au champ "fonction" de matable1)

La première partie de mon Trigger (premier INSERT) fonctionne mais pas la seconde partie puisque rien n'est inséré dans la table users_roles

J'ai testé toutes mes requêtes individuellement et elles fonctionnent. J'ai la sensation que le problème se situe au niveau des variables uiduser, ridfunc ou bien j'utilise pas comme il faut SET et DECLARE.

Une idée?

Merci

Le contenu de mon Trigger :

CREATE TRIGGER mdinsert
AFTER INSERT ON matable1
FOR EACH ROW
BEGIN

DECLARE uiduser INT;
DECLARE ridfunc INT;
   
   INSERT INTO users (ref_uid, ref_tti, mail, name, pass) 
          VALUES (NEW.ref_perso, NEW.tti, NEW.email, NEW.username, MD5(NEW.pass));
          
   SELECT r.rid INTO ridfunc 
          FROM role r, users u 
             WHERE NEW.fonction=r.na and NEW.ref_perso=u.ref_uid and NEW.uid=(SELECT uid FROM matable1 ORDER BY uid  DESC LIMIT 1);
             
SET ridfunc = ridfunc;

   SELECT uid INTO uiduser 
         FROM users ORDER BY uid  DESC LIMIT 1;
         
SET uiduser = uiduser;


   INSERT INTO users_roles (uid,rid) 
         VALUES (ridfunc,uiduser);
   
END$$



A voir également:

1 réponse

pcsystemd Messages postés 691 Date d'inscription dimanche 27 novembre 2005 Statut Membre Dernière intervention 15 janvier 2024 22
26 août 2010 à 14:39
C'est résolu . Merci
0