Creați primul liliac-fișier sau să vă amintiți crearea și restaurarea bazei de date MySQL din linia de comandă,
Ceea ce avem.
Dump.sql un fișier - bază de date arunca tot felul de a crea masă și se introduce în, nu contează.
Și într-un fișier separat databases.txt au o listă cu numele majorității acestor baze.
Avem nevoie pentru a citi linia de fișiere de linie, de a crea un nume pentru fiecare bază corespunzătoare și conduce în conținutul ei dump.sql.
Notă: În exemplul nostru, toate fișierele sunt într-un singur dosar
Cum de a face acest lucru.
Cum de a citi un fișier, deschideți Google, am găsit imediat.
Ușor Hitch a fost faptul că interogarea executa comenzi din fișierul dovedit ușor, dar pur și simplu nu a putut efectua simplu sql-interogare din linia de comandă.
Se pare a avea mysql -e, care vă permite să rulați interogări ca acest lucru:
Dar nu a funcționat, probabil din cauza krivosti mâinile mele.
Prin urmare, a fost folosit un truc inteligent: toate cererile sunt citite din fișierul temporar, în care pre-înregistrate comenzile dorite :-)
Să începem. Create_db.bat a crea un fișier și scrie-l în următoarea, apoi să vedem ce este vorba
Ceea ce a fost scris.
1. @echo off
Dezactivați ieșirea în consolă, vom retrage doar ceea ce ne interesează
2. pentru / F%. în (databases.txt) do (.)
Am citit linia de fișiere de linie databases.txt, care este o listă a bazelor noastre. O linie - o bază. Pentru numele nu există lacune, și diverse simboluri misterioase, oferta de a lua ei înșiși de îngrijire :-) Parantezele sunt necesare pentru a efectua o serie de comenzi
3. drop baza de date ecou în cazul în care există test de _%;.> Temp_db.sql
Scrieți în temp_db.sql comandă pentru a șterge bază de date cu același nume, dacă există. test de prefix se face pentru comoditate. Rețineți că variabila buclă este denumită%. - dublu procentul și un singur caracter - acestea sunt caracteristicile. Dacă vom atribui variabile mâinile din bucla, puteți utiliza mai multe caractere, iar valoarea sa va primi așa-%% variabilă
4. echo crea baza de date test_%. Set de caractere utf8 asmblare utf8_general_ci; >> temp_db.sql
Crearea unei baze de date cu codificare UTF-8. Notă> și >>. Prima declarație suprascrie un fișier, al doilea adaugă text la sfârșitul fișierului.
5. utilizează testul de ecou _%. >> temp_db.sql
Modificarea bazei de date curente cu nou-create în scopul de a importa date în ea din dump.sql. Nu uita; la sfârșitul fiecărei solicitări.
6. mysql -uroot -proot>, înainte de a ciclului, am creat fișierul de către operator> și a scris o instrucțiune gol în ea;