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$$
Partager