[CMD] variable enregistrer dans .txt puis récupéré [MySQL]

Résolu/Fermé
jourzebest Messages postés 12 Date d'inscription samedi 19 novembre 2011 Statut Membre Dernière intervention 16 juin 2015 - 15 juin 2015 à 09:44
jourzebest Messages postés 12 Date d'inscription samedi 19 novembre 2011 Statut Membre Dernière intervention 16 juin 2015 - 15 juin 2015 à 11:30
Bonjour,

J'ai fait un script assez simple pour importer des base sql sur mon serveur MySQL. Ensuite je récupère les tables qui m'intéresse, en créant un dump.

Seul problème j'ai des tables avec plus de 150 000 000 de lignes, lorsque ses tables sont trop grandes je veux les "couper".
Pour ma première étape il faut donc récupéré le nombre de ligne contenue dans ma base.

Si j'ai bien compris le seule moyen d'avoir le résultat d'une requéte est de le sauvegarder dans un fichier txt.
Je fais donc :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
"C:\...\MySQL\bin\mysql.exe" -u root --database=maBase -e"SELECT count(id) FROM table1; SELECT count(id) FROM table2;"> fichierresult.txt
mon fichierresult.txt contient :

count(id)
1774016
count(id)
3018972


Comment puis-je récupéré les nombres et en faire la somme ?

Cordialement.
A voir également:

1 réponse

jee pee Messages postés 39636 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 25 avril 2024 9 235
Modifié par jee pee le 15/06/2015 à 10:24
Bonjour,

Ne connaissant pas mysql je ne peux que te donner des pistes.

Je fais souvent des choses comme cela avec Oracle. Dans le sql il y a des paramètres qui s'appliquent pour par exemple supprimer le titre des colonnes dans le fichier de sortie (set header off). Ainsi le fichier ne contient que des éléments utiles et tu peux même lui donner un nom en .bat

Pour la requête je ferais :

select 'set nbre=', sum(nbre) from 
(SELECT count(id) nbre FROM table1 
union 
SELECT count(id) nbre FROM table2)


ainsi j'ai un .bat qui contient
set nbre=4799999


cdlt

        Un étranger, c'est un ami qu'on n'a pas encore rencontré.
1
jourzebest Messages postés 12 Date d'inscription samedi 19 novembre 2011 Statut Membre Dernière intervention 16 juin 2015 2
Modifié par jourzebest le 15/06/2015 à 10:48
Bonjour et merci de votre réponse,

J'avais pas penser a modifier ma requête pour simplifier le tout..
Seulement petit probléme : ERROR 1248 (42000) at line 1: Every derived table must have its own alias

C'est peut étre spécifique a MySQL...

€dit : tout béte suffit de faire :
select 'set nbre=', sum(nbre) from
(SELECT count(id) nbre FROM table1
union
SELECT count(id) nbre FROM table2) as test
0
jourzebest Messages postés 12 Date d'inscription samedi 19 novembre 2011 Statut Membre Dernière intervention 16 juin 2015 2
15 juin 2015 à 11:30
La premiére etape fonctionne bien, je récupére le nombre de ligne et je le mets dans une variable pour le tester.
Si j'ai bien compris il faut mettre le if condition() else () sur une seule ligne.
Comment mettre plusieurs actions dans le else () ? et est ce qu'il est possible de mettre des sauts de ligne pour la visibilité ?
0