[Bash] Tester l'existence d'une base MySQL
Résolu
Doezer
Messages postés
255
Date d'inscription
Statut
Membre
Dernière intervention
-
Doezer Messages postés 255 Date d'inscription Statut Membre Dernière intervention -
Doezer Messages postés 255 Date d'inscription Statut Membre Dernière intervention -
A voir également:
- [Bash] Tester l'existence d'une base MySQL
- Flash drive tester - Télécharger - Divers Utilitaires
- Tester son pc - Guide
- Base de registre - Guide
- Tester composant pc - Guide
- Tester disque dur - Télécharger - Informations & Diagnostic
1 réponse
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