Précédent   Forum des professionnels en informatique > Bases de données > MySQL > SQL Procédural
SQL Procédural Forum d'entraide sur les triggers, les procédures stockées et les fonctions en MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 31/01/2012, 09h06   #1
Membre du Club
 
Inscription : juin 2009
Messages : 101
Détails du profil
Informations forums :
Inscription : juin 2009
Messages : 101
Points : 40
Points : 40
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
mattmax est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/01/2012, 13h33   #2
Membre du Club
 
Inscription : août 2009
Messages : 66
Détails du profil
Informations forums :
Inscription : août 2009
Messages : 66
Points : 69
Points : 69
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 :
SHOW FULL TABLES WHERE Table_type = 'BASE TABLE';
NicoD. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/01/2012, 14h56   #3
Membre du Club
 
Inscription : juin 2009
Messages : 101
Détails du profil
Informations forums :
Inscription : juin 2009
Messages : 101
Points : 40
Points : 40
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 :
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
mattmax est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/01/2012, 18h37   #4
Membre du Club
 
Inscription : août 2009
Messages : 66
Détails du profil
Informations forums :
Inscription : août 2009
Messages : 66
Points : 69
Points : 69
Citation:
Envoyé par mattmax Voir le message
Code :
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 :
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.
NicoD. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/01/2012, 20h31   #5
Membre Expert
 
Homme Eric Dureuil
Développeur informatique
Inscription : avril 2011
Messages : 874
Détails du profil
Informations personnelles :
Nom : Homme Eric Dureuil
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 : 874
Points : 1 361
Points : 1 361
salut,

petite correction:
Code sql :
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 :
SET a=b+5,...,d=concat(a,' eur');
qui équivaut à:
Code sql :
1
2
3
SET a=b+5;
...
SET d=concat(a,' eur');
__________________
Eric Dureuil, développeur web, c/c++, java indépendant
soyons
pensez à mettre et
ericd69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/01/2012, 21h13   #6
Membre du Club
 
Inscription : août 2009
Messages : 66
Détails du profil
Informations forums :
Inscription : août 2009
Messages : 66
Points : 69
Points : 69
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.
NicoD. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/01/2012, 21h19   #7
Membre Expert
 
Homme Eric Dureuil
Développeur informatique
Inscription : avril 2011
Messages : 874
Détails du profil
Informations personnelles :
Nom : Homme Eric Dureuil
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 : 874
Points : 1 361
Points : 1 361
elle passe oui je sais mais autan que faire se peut vaut mieux employer la mienne , celle de la doc... la tienne peut planter selon les réglages du serveur et la requête

__________________
Eric Dureuil, développeur web, c/c++, java indépendant
soyons
pensez à mettre et
ericd69 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/01/2012, 21h23   #8
Membre du Club
 
Inscription : août 2009
Messages : 66
Détails du profil
Informations forums :
Inscription : août 2009
Messages : 66
Points : 69
Points : 69
Citation:
Envoyé par ericd69 Voir le message
elle passe oui je sais mais autan que faire se peut vaut mieux employer la mienne , celle de la doc... la tienne peut planter selon les réglages du serveur et la requête

Je n'aurais donc pas perdu ma journée. Merci M'sieur !
NicoD. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2012, 09h05   #9
Membre du Club
 
Inscription : juin 2009
Messages : 101
Détails du profil
Informations forums :
Inscription : juin 2009
Messages : 101
Points : 40
Points : 40
Merci beaucoup de votr aide cela ma été très utile
mattmax est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h10.


 
 
 
 
Partenaires

Hébergement Web