2009-10-02 15 views
1

Quelqu'un peut-il me lier à un tutoriel ou expliquer s'il existe un moyen de créer une sorte de fichier batch de scripts mysql/processeurs stockés et les exécuter tous en même temps? Je n'arrive pas à trouver de documentation sur ce sujet en ligne mais je pense que je pourrais chercher en utilisant les mauvais termes.Exécuter des scripts Mysql dans un lot?

Répondre

6

Vous pouvez simplement créer un fichier texte avec des instructions SQL séparées par; puis exécuter toutes les instructions avec le client de ligne de commande MySQL:

# my_textfile.sql 
# --------------- 
USE my_database; 
SELECT * FROM table1; 
UPDATE table2 SET foo='bar'; 

Command Line: 
mysql < my_textfile.sql 
4

Vous pouvez enchaîner les scripts MySQL en les appelant à partir d'un script en utilisant la commande source (details of command line options)

# my_textfile.sql 
# --------------- 
USE my_database; 
\. subscript1.sql 
\. subdir/subscript2.sql 
\. /full/path/to/subscript3.sql 

Command Line: 
mysql < my_textfile.sql 

Ne pas oublier les options de ligne de commande, si vous allez scripter les fichiers, vous pourriez avoir besoin du mot de passe/compte d'utilisateur.

mysql -uyouraccount -pyourpassword YourDatabase < mytextfile.sql 

Ce n'est pas le moyen le plus sûr de le faire, car il met votre nom d'utilisateur/mot de passe sur la ligne de commande, mais cela fonctionne. Si vous faites beaucoup de scripts, je vous suggère de regarder dans .my.cnf et les différentes options pour enregistrer votre compte/mot de passe (et de sécuriser ce fichier).

+0

Je voulais juste noter que j'ai volé un peu d'exemple de code de Tomas si ce n'est pas évident. –

0

Pour coups d'oeil en cours d'exécution MAMP PRO sur OS X Yosemite, j'ai pu obtenir tous mes scripts * .sql exécutés (importation) en exécutant du terminal:

/Applications/MAMP/Library/bin/mysql -h localhost -u root -p < /Applications/MAMP/myDBRestore.sql 

myDBRestore.sql contenait une référence à tous les DB MySQL scripts comme ainsi:

\. /full/path/to/sql/file1.sql 
\. /full/path/to/sql/file2.sql 
\. /full/path/to/sql/file3.sql 
... 
\. /full/path/to/sql/file(n).sql 

n est le dernier fichier .sql dans le répertoire.

Questions connexes