Bonjour,
J'aimerais pouvoir tester l'existence d'une base tout d'abord, pour ensuite décider de la créer ou non. J'ai fait ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
if [[ 'mysql -uXXXXX -pXXXX -e "USE log;"' != 0 ]];then
    echo "CREATE DATABASE log;" >> /tmp/stats.sql
fi
Quand la bd n'existe pas, il écrit bien dans le fichier.
Mais quand elle existe déjà, il écrit aussi dans le fichier !

Deuxième partie, pour tester l'existence d'une table cette fois. J'ai déjà ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
if [[ 'mysql -uXXXX -pXXXXX -e "SELECT * FROM log.connexions_groupes_${annee}_${mois};"' != 0 ]];then
 
 echo "CREATE TABLE log.connexions_groupes_${annee}_${mois} (Id AUTO_INCREMENT, GroupID INTEGER, GroupName VARCHAR(30), Connections INTEGER);" >> /tmp/stats.sql
 
fi
Ici, bien que la table n'existe pas, il n'écrit pas non plus dans le fichier.

Et enfin 3ème partie, pour tester si un champ est rempli ou non. J'ai fait ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
  if [[ 'mysql -uXXXX -pXXXXX -e "SELECT Connexions FROM log.connexions_groupes_${annee}_${mois} WHERE GroupID=${groupiddata[${COUNTER}]};"' := 0 ]];then
 
   #Si le champ n'a pas encore été rempli (première fois sur le mois que le script est lancé) on insère les données
   echo "INSERT INTO connexions_groupes_${annee}_${mois} (GroupID,GroupName,Connections) VALUES(${groupiddata[${COUNTER}]},'${groupnamedata[${COUNTER}]}',$nbconnec)" >> /tmp/stats.sql
 
  else  
 
   #si le champ est déjà rempli on modifie les données
   echo "UPDATE connexions_groupes_${annee}_${mois} SET Connections=$nbconnec WHERE GroupID = ${groupiddata[${COUNTER}]};" >> /tmp/stats.sql
 
  fi
Ici, il me fait tout le temps un update, même quand les tables n'existent pas.

Existe-t-il une façon plus simple de tester l'existence de ces éléments ?
Sinon, y'a t-il un moyen de rendre ce script fonctionnel ?

Merci de votre aide.

PS : En tant que tel, je sais que les commandes ne créent pas de SQL, mais j'ai besoin d'exporter les données dans un fichier pour les besoins du script.