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 :

Trigger appelle procedure


Sujet :

SQL Procédural MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 56
    Par défaut Trigger appelle procedure
    Bonjour,

    J'ai un comme un souci.
    J'ai vu sur http://dev.mysql.com/doc/refman/5.0/...-triggers.html qu'un type arrivait à appeler une procedure stockée depuis un trigger et ça à l'air miraculeusement simple...

    Evidemment avec moi, impossible.
    J'ai testé ma procedure, elle marche tip top.

    Et mon trigger est ainsi créé:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    create trigger insert_bidule AFTER INSERT ON ma_base.bidule FOR EACH ROW 
    CALL ma_base.checkMonFlow(185,'yeah','dude');
    Impossible, le trigger n'est jamais appelé. En tous cas, ma fonction ne fait rien et quand je la teste pas de probleme.
    J'ai refais le trigger tout simple et ca marche.
    Donc cest bien l'appel à ma procedure qui ne marche pas.

    J ai mysql 5.0.41-Debian_1-log

    Merci à celui ou celle qui me sauvera la peau

  2. #2
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 287
    Par défaut
    que contient ta procédure ?
    comment testes-tu ton trigger ?

  3. #3
    Membre averti
    Inscrit en
    Août 2007
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 18
    Par défaut
    Salut :
    J'ai le même problème, j'ai une procédure qui a comme paramètre l'ID d'un utilisateur, le résultat fournit est le login de ce user. Voila le Code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    DELIMITER $$
     
    CREATE DEFINER=`root`@`localhost` PROCEDURE `username`(IN parametre DECIMAL(18,0))
    BEGIN
     
    SELECT username FROM userbase WHERE ID=parametre;
    END $$
     
    DELIMITER ;

    Aprés j'ai créer un 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
     
    DELIMITER $$
     
    CREATE TRIGGER test_imput AFTER INSERT ON Imputation
    FOR EACH ROW
     
    BEGIN
    DECLARE login varchar(100);
     
    login := username(New.user);
    INSERT INTO test_imputation
      VALUES (new.ID, new.user, new.Date_imputation, login);
     
     
    END $$
     
    DELIMITER ;
    L'appel de la procédure n'a pas marchais quelqu'un a une idée???

  4. #4
    Membre averti
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2005
    Messages : 30
    Par défaut
    L'affectation se fait avec la commande SET. On obtient :

    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
    DELIMITER $$
    
    CREATE TRIGGER test_imput AFTER INSERT ON Imputation
    FOR EACH ROW
    
    BEGIN
    DECLARE login varchar(100);
    
    SET login = username(New.user);
    INSERT INTO test_imputation
      VALUES (new.ID, new.user, new.Date_imputation, login);
    
    
    END $$
    
    DELIMITER ;
    Je n'ai pas testé le résultat...

    spg40

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

Discussions similaires

  1. Trigger / appel procedure / sql dynamique / bonnes pratiques
    Par Samish dans le forum SQL Procédural
    Réponses: 9
    Dernier message: 25/03/2011, 21h56
  2. Appel procedure stockée oracle avec php
    Par CYCLOPE91440 dans le forum Oracle
    Réponses: 17
    Dernier message: 09/02/2007, 10h08
  3. appel procedure sql server depuis oracle
    Par Jdubernat dans le forum Oracle
    Réponses: 2
    Dernier message: 21/12/2006, 15h43
  4. appel procedure delphi
    Par bel_louiza dans le forum Delphi
    Réponses: 1
    Dernier message: 17/10/2006, 14h37
  5. Réponses: 2
    Dernier message: 28/08/2006, 11h00

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