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 :

Procedure pour calculer le nombre ligne d'une table


Sujet :

SQL Procédural MySQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    201
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 201
    Par défaut Procedure pour calculer le nombre ligne d'une table
    Bonjour,

    Je dois écrire une procédure Mysql qui passe dans chacune de mes base de données client et qui dans chacune doit calculer le nombre de ligne d'une table en particulier.

    En gros j'ai crée une base avec une table calcul_ligne et comme colonne nom_client, nom_base,nombre_ligne.
    Je dois calculer pour chaque base de données client le nombre de ligne d'une table de ces bases et inscrire les infos dans ma table calcul_ligne

    J'aimerais avoir 2-3 pistes s'il vous plait , je suis débutant en mysql

    Merci d'avance

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2009
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 67
    Par défaut
    Quelque piste :

    Pour ma part, j'ai réalisé mes premières procédures stockées en lisant ce tutoriel sur le partitionnement. Je t'incite à regarder les procédures créées dans ce tutoriel.

    http://krierjon.developpez.com/mysql/partitionnement/

    Pour récupérer le nom des tables d'une base de données :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SHOW FULL TABLES WHERE Table_type = 'BASE TABLE';

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    201
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 201
    Par défaut
    Merci je v m'aider de ce tutoriel pour essayer de trouver ma solution

    J'ai une dernière question est ce que cette syntaxe est correcte, je voudrais mettre le résultat d'une requête dans une variable

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    set nb_ligne := select count(clientlogicielbaseid)  from db1.tclientlogicielbases where basecode = 'TOTO';
    Cette syntaxe est elle correcte ou dois je passer par un curseur

    Merci d'avance

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2009
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 67
    Par défaut
    Citation Envoyé par mattmax Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    set nb_ligne := select count(clientlogicielbaseid)  from db1.tclientlogicielbases where basecode = 'TOTO';
    Cette syntaxe est elle correcte ou dois je passer par un curseur
    Je ne sais pas si cette syntaxe est correcte, mais celle-ci l'est assurément :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT COUNT(id) FROM ma_table INTO nb_ligne
    Par contre, il faudra fatalement passer par un curseur pour parcourir le résultat de la liste des tables de ta base de données.

  5. #5
    Membre Expert
    Avatar de ericd69
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    1 919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

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

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 919
    Billets dans le blog
    1
    Par défaut
    salut,

    petite correction:
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    declare nb_ligne int;
    ...
    SELECT COUNT(id) INTO nb_ligne FROM ma_table;

    le into doit être avant le from... le nombre de valeurs avant le into DOIT être le même que le nombre de variables derrière...

    set sert à effectuer des calculs avec affectation:
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    set a=b+5,...,d=concat(a,' eur');
    qui équivaut à:
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    set a=b+5;
    ...
    set d=concat(a,' eur');

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2009
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 67
    Par défaut
    ericd69 > Pour le SELECT ... FROM ... INTO, c'est une écriture que j'ai utilisé avec succès dans des procédures stockées. Donc, elle doit probablement être acceptée par MySQL.

    Maintenant, la tienne est plus lisible, sans l'ombre d'un doute.

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 11/04/2014, 12h17
  2. Requête pour calculer le nombre de ligne
    Par salsero1 dans le forum SQL
    Réponses: 1
    Dernier message: 25/04/2008, 12h05
  3. Réponses: 21
    Dernier message: 17/12/2007, 18h47
  4. [8.5]Problème pour calculer le nombre des personnes d'une liste
    Par Gotch59 dans le forum SAP Crystal Reports
    Réponses: 9
    Dernier message: 21/06/2007, 09h47
  5. Réponses: 2
    Dernier message: 20/03/2007, 13h39

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