Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1492 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Récupérer un nom de base pour la détruire (Shell) ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Récupérer un nom de base pour la détruire (Shell) ?

n°705698
shinmaki
Posté le 22-04-2004 à 10:11:18  profilanswer
 

Bonjour tout le monde,
 
J'ai un script qui automatise un certain nombre de tâches dont la destruction d'une base MySQL. Le tout est sous Red Hat 9.
 
Je récupère le nom d'un utilisateur dans une variable $compte et je veux détruire la base correspondante. Pour cela, j'aimerais affecter le résultat de la requête de selection à une variable puis l'utiliser avec un DROP. Comment affecter le résultat d'une requête à une variable dans un scrip Shell ?
 
Voici le bout de mon script correspondant :
 
/usr/bin/mysql -u root --password=$passroot mysql << END_COMMANDS  
 
SELECT Db FROM db WHERE User='$compte' AND db!='patouche'; #à affecter à la variable db
DROP $db;
 
END_COMMANDS
 
 
Merci d'avance.

mood
Publicité
Posté le 22-04-2004 à 10:11:18  profilanswer
 

n°715163
starius
Posté le 04-05-2004 à 12:31:31  profilanswer
 

Salut,
Je pense qu'il y a plus simple mais je passerais par un fichier temporaire :
/usr/bin/mysql -u root --password=$passroot mysql << END_COMMANDS  > "resut.txt"
Après, tu fais un awk :
awk 'print "DROP " $1 " ; " ' "result.txt" > "result2.txt"
chmod 777 "result2.txt"
./result2.txt
rm "result2.txt"
rm "result.txt"
...  
C chargé mais bon, ça doit marcher...
Maintenant, n'est-il pas possible de faire ça via une sous requête ?

n°715267
shinmaki
Posté le 04-05-2004 à 14:28:10  profilanswer
 

OK. Merci, j'ai gardé l'idée du fichier temporaire et j'ai fait comme ça :
 
echo "SELECT Db FROM db WHERE User='$compte' AND db!='pa_touche_a_cette_base' LIMIT 1;" > req.sql
/usr/bin/mysql -u root --password=$passroot mysql < req.sql > dbTemp
# on ne veut pas l'en-tête
dbUser=`tail -n 1 dbTemp`
/usr/bin/mysql -u root --password=$passroot mysql << END_COMMANDS
DROP DATABASE $dbUser;
DELETE FROM db WHERE User = '$compte' LIMIT 2;
DELETE FROM user WHERE User = '$compte' LIMIT 2;
END_COMMANDS


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Récupérer un nom de base pour la détruire (Shell) ?

 

Sujets relatifs
recuperer la premiere ligne d'un tableaulancement d'un programme java via un shell
Limite d'enregistrmeent d'une base MySQL ?Connexion base de données ACESS en VBscript
fonction de base =>resoluerreur base de donner
Crypter un champ dans une base de données sql serverCommande shell dans un gawk
ajout d'un form dans une base de donnée 
Plus de sujets relatifs à : Récupérer un nom de base pour la détruire (Shell) ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR