Folosirea MySQL in Batch Mode
In tutorialele precedente ai folosit mysql intr-o maniera interactiva pentru a ridica anumite probleme si a le afla raspunsul. De asemenea, poti rula mysql si in batch mode prin plasarea comenzilor pe care vrei sa le rulezi intr-un dosar, apoi „spune-i” programului mysql sa citeasca datele introduse din dosar.:
shell> mysql < batch-file
Daca rulezi mysql din Windows si exista anumite caractere speciale in dosar care creeaza probleme, poti sa faci urmatorul lucru:
C:\> mysql -e "source batch-file"
Daca trebuie sa specifici parametrii de conexiune in linia de comanda, respectiva comanda poate arata astfel:
shell> mysql -h host -u user -p < batch-file
Enter password: ********
Cand folosesti mysql in aceasta maniera, creezi un script file pe care il vei executa apoi. Daca vrei ca script-ul sa continue, chiar daca unele functii din el produc erori, poti folosi optiunea linie de comanda -force.
Iata cateva motive pentru care sa folosesti un script:
- Daca rulezi o interogare in mod repetat (de exemplu, in fiecare zi sau saptamana), transformarea ei intr-un script iti permite sa eviti tastarea de fiecare data cand o executi.
- Poti genera noi interogari din cele deja existente, care sunt similare, prin copierea si editarea script file-urilor.
- Optiunea Batch mode poate fi utila atunci cand dezvolti o interogare, in special pentru comenzi pe mai multe linii sau pentru secvente de comenzi cu functii multiple. Daca faci o greseala, nu trebuie sa tastezi din nou totul, doar editeaza script-ul pentru a corecta eroarea si fa ca mysql sa o execute din nou.
- Daca ai de a face cu o interogare care produce o cantitate mare de rezultate finale, poti rula aceste rezultate cu ajutorul unui pager, in loc sa le vezi cum se deruleaza in partea de sus a ecranului:
shell> mysql < batch-file | more
- Poti sa integrezi rezultatele finale intr-un dosar pentru a fi procesate ulterior:
shell> mysql < batch-file > mysql.out
- Poti sa distribui script-ul si altor persoane, astfel incat sa poata rula si ele comenzile la randul lor.
- Unele situatii nu permit o folosire interactiva, de exemplu atunci cand rulezi o interogare dintr-o functie cron. In acest caz trebuie sa utilizezi batch mode.
Formatul de output setat initial este diferit (mai concis) atunci cand rulezi mysql in batch mode decat atunci cand il folosesti interactiv. De exemplu, rezultatul final al functiei SELECT DISTINCT species FROM pet arata astfel cand mysql este rulat interactiv:
+---------+
| specii |
+---------+
| pasare |
| pisica |
| caine |
| hamster |
| sarpe |
+---------+
In batch mode, output-ul arata astfel:
specii
pasare
pisica
caine
hamster
sarpe
Daca vrei sa transformi formatul output interactiv in batch mode, foloseste mysql -t. Pentru a transmite output-ului comenzile ce sunt executate foloseste comanda mysql -vvv. De asemenea, poti folosi script-uri din prompt-ul mysql prin utilizarea comenzii source sau a comenzii:
mysql> source filename;
mysql> \. Filename
|