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

MySQL Discussion :

[procédure stockée] Requête renvoyant plusieurs lignes


Sujet :

MySQL

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2006
    Messages : 70
    Points : 71
    Points
    71
    Par défaut [procédure stockée] Requête renvoyant plusieurs lignes
    Bonjour à tou(te)s,
    J'ai une requête qui retourne plusieurs lignes (ex : liste de nom, prénom et mail).
    Je voudrais l'effectuer via une procédure (ou fonction stockée).
    Comment fait-on avec MySQL ?
    Merci.

  2. #2
    Expert éminent Avatar de kain_tn
    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 565
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 565
    Points : 7 291
    Points
    7 291
    Par défaut
    Bonjour.

    Que veux-tu faire exactement dans ta procédure? N'est-il pas possible de passer par une vue pour faire ce que fait ta procédure?
    Sinon, il est peut-être préférable de faire un INSERT de tes résultats dans une table temporaire à la fin de ta procédure et de faire un SELECT sur cette même table par la suite.
    Copier c'est copier; voler c'est vendre un CD une vingtaine d'euros!


    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    #include <stdio.h>
     
    int main(int argc, char **argv) {
     
        printf("So long, and thanks for the fish, Dennis...\n");
        return 0;
    }

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2006
    Messages : 70
    Points : 71
    Points
    71
    Par défaut
    Citation Envoyé par kain_tn Voir le message
    Que veux-tu faire exactement dans ta procédure? N'est-il pas possible de passer par une vue pour faire ce que fait ta procédure?
    Il s'agit juste de recuprérer les champs d'une table. Ex :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT nom, prenom, mail FROM Utilisateur;
    Qu'apporterait une vue ?

    Citation Envoyé par kain_tn Voir le message
    Sinon, il est peut-être préférable de faire un INSERT de tes résultats dans une table temporaire à la fin de ta procédure et de faire un SELECT sur cette même table par la suite.
    ça, c'est une bonne idée (si je ne trouve rien d'autre, c'est ce que je ferai).

    Confirmes-tu qu'on ne peut pas recupérer plusieurs lignes avec une procédure stockée avec MySQL ?

  4. #4
    Expert éminent Avatar de kain_tn
    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 565
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 565
    Points : 7 291
    Points
    7 291
    Par défaut
    Hé bien, si tu veux passer par des procédures stockées pour "masquer" ta base à l'utilisateur, la vue permet de faire la même chose.

    Supposons que tu ait une requête SELECT un peu compliquée (multiples jointures, conditions etc), alors tu peux créer une vue étant définie comme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CREATE VIEW mavue AS marequete
    L'avantage de la vue est qu'il s'agit simplement d'une requête: elle ne stocke pas de données. Tu peux ensuite faire des requêtes sur ta vue comme si il s'agissait d'une nouvelle table.

    Pour ce qui est de récupérer plusieurs lignes, je n'ai pas essayé sous MySQL.
    Copier c'est copier; voler c'est vendre un CD une vingtaine d'euros!


    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    #include <stdio.h>
     
    int main(int argc, char **argv) {
     
        printf("So long, and thanks for the fish, Dennis...\n");
        return 0;
    }

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2006
    Messages : 70
    Points : 71
    Points
    71
    Par défaut
    Merci pour les idées.
    J'ai quand même besoin de l'info concernant le multi-ligne.
    Je vais faire un post juste pour ça.

Discussions similaires

  1. [procédure stockée] Requête renvoyant plusieurs lignes avec MySQL
    Par ourseblanche dans le forum SQL Procédural
    Réponses: 4
    Dernier message: 16/01/2010, 17h13
  2. Réponses: 2
    Dernier message: 25/08/2008, 10h44
  3. [Procédure Stockée] mettre à jour plusieurs lignes
    Par PoichOU dans le forum Langage SQL
    Réponses: 15
    Dernier message: 16/05/2007, 16h18
  4. Réponses: 3
    Dernier message: 24/04/2006, 16h32
  5. procédure stockée pour renvoyer un état dans une application
    Par erickoffi dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 27/10/2005, 19h05

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