IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SQL Procédural MySQL Discussion :

SELECT via un Trigger


Sujet :

SQL Procédural MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Février 2005
    Messages
    144
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 144
    Par défaut SELECT via un Trigger
    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$$

  2. #2
    Membre confirmé
    Inscrit en
    Février 2005
    Messages
    144
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 144
    Par défaut
    C'est résolu. Merci

  3. #3
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 058
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 058
    Par défaut
    Peut-on avoir une idée de la solution (si le problème se posait pour quelqu'un d'autre) ?

    ced
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [SQL Server 2005] Déclenchement de PS via un trigger
    Par Sadneth dans le forum Développement
    Réponses: 3
    Dernier message: 26/03/2007, 12h16
  2. problème de mise à jour via un trigger
    Par clement42 dans le forum Sybase
    Réponses: 4
    Dernier message: 17/01/2007, 10h29
  3. MS SQL Server - Execution d'1 Lot DTS via un trigger
    Par DrChal dans le forum Développement
    Réponses: 1
    Dernier message: 27/06/2006, 14h05
  4. SELECT dans un trigger
    Par bouleboule dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 05/07/2005, 13h36
  5. select dans un trigger sous Postgresql
    Par kastor_grog dans le forum Requêtes
    Réponses: 1
    Dernier message: 03/09/2003, 17h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo