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 :

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
20
21
22
23
24
25
26
27
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$$