[Bash] Tester l'existence d'une base MySQL
Résolu/Fermé
Doezer
Messages postés
255
Date d'inscription
mercredi 14 avril 2010
Statut
Membre
Dernière intervention
11 août 2014
-
28 nov. 2011 à 16:47
Doezer Messages postés 255 Date d'inscription mercredi 14 avril 2010 Statut Membre Dernière intervention 11 août 2014 - 29 nov. 2011 à 16:54
Doezer Messages postés 255 Date d'inscription mercredi 14 avril 2010 Statut Membre Dernière intervention 11 août 2014 - 29 nov. 2011 à 16:54
A voir également:
- [Bash] Tester l'existence d'une base MySQL
- Flash drive tester - Télécharger - Divers Utilitaires
- Tester son pc - Guide
- Formules excel de base - Guide
- Tester composant pc - Guide
- Mysql community server - Télécharger - Bases de données
1 réponse
Doezer
Messages postés
255
Date d'inscription
mercredi 14 avril 2010
Statut
Membre
Dernière intervention
11 août 2014
112
29 nov. 2011 à 16:54
29 nov. 2011 à 16:54
Problème résolu, je met les solutions.
Pour la base et les tables, j'ai fini par rediriger les erreurs dans un fichier temporaire que je compare ensuite à l'erreur qui doit ressortir si l'élément n'existe pas.
Base :
Table :
Pour vérifier si un champ est rempli, c'est la sortie que j'ai redirigée cette fois-ci :
Pour la base et les tables, j'ai fini par rediriger les erreurs dans un fichier temporaire que je compare ensuite à l'erreur qui doit ressortir si l'élément n'existe pas.
Base :
#On crée la base si elle n'existe pas if [[ 'mysql -uXXXXX -pXXXX -e "USE ${db};" 2> /tmp/error.logextract ; cat /tmp/error.logextract' = "ERROR 1049 (42000) at line 1: Unknown database '${db}'" ]];then echo "CREATE DATABASE ${db};" >> /tmp/stats.sql fii
Table :
if [[ 'mysql -uXXXX -pXXXXX -e "SELECT * FROM ${db}.connexions_groupes_${annee}_${mois};" 2> /tmp/error.logextract ; cat /tmp/error.logextract' = "ERROR 1146 (42S02) at line 1: Table '${db}.connexions_groupes_${annee}_${mois}' doesn't exist" ]];then echo "CREATE TABLE connexions_groupes_2011_11 ( id INTEGER AUTO_INCREMENT, GroupID INTEGER, GroupName VARCHAR(30), Connections INTEGER, PRIMARY KEY (id));" >> /tmp/stats.sql fi
Pour vérifier si un champ est rempli, c'est la sortie que j'ai redirigée cette fois-ci :
if [[ 'mysql -uXXXX -pXXXX -e "SELECT Connections FROM ${db}.connexions_groupes_${annee}_${mois} WHERE GroupID=${groupiddata[${COUNTER}]};" > /tmp/error.logextract ; cat /tmp/error.logextract' = "" ]];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