2009-07-05 18 views
42

so come si possa eseguire query MySQL/comandi da bash:Come ottenere il numero di righe interessate mentre si esegue la query MySQL da bash?

mysql -u[user] -p[pass] -e "[mysql commands]" 

o

mysql -u[user] -p[pass] `<<`QUERY_INPUT 

[mysql commands] 

QUERY_INPUT 

Come posso catturare quante righe sono state colpite dalla query?
Ho provato a fare:

variable='`mysql -u[user] -p[pass] -e "[mysql commands]"`' 

lo fa eseguire il comando, ma non restituisce il numero di righe interessate.

risposta

74

Mettere

SELECT ROW_COUNT(); 

come ultima istruzione nel batch e analizzare l'output

+0

Sì, funziona, ed è più elegante e più facile da analizzare l'output. Grazie è stato molto utile. –

+2

Questo è stato introdotto in MySQL 5. Se sei bloccato usando 4.x dovrai analizzare l'output –

+0

Usa la risposta @ florin.bunau, è meglio vedere quante righe vengono aggiornate/inserite/rimosse. –

18

Potrei aver risposto a me stesso la domanda, ho osservato i parametri, e in modo univoco usando "-v -v -v" come parametri per il comando mysql, lo costringe ad essere più dettagliato e sputa quante righe sono state interessate .

+3

'-vvv' è perfetto se si desiderano maggiori dettagli, che includono il tempo di esecuzione della query. – Qtax

+0

@Qtax, C'è qualche differenza tra '-v' e' -vvv'? – Pacerier

+1

@Pacerier, sì sono diversi. Per ogni 'v' che aggiungi ottieni maggiore verbosità e maggiori informazioni (come i tempi di esecuzione delle query, ecc.). – Qtax

3

Non è una risposta, ma utile Inoltre, si potrebbe anche provare le altre funzioni di informazioni di MySQL (che includono ROW_COUNT()) per darti le informazioni specifiche di cui hai bisogno. See MySQL reference here

+0

Come questo aiuta se corro una query di aggiornamento e vuoi vedere quante righe sono cambiate? – tobyodavies

+0

Non c'è "verbose dump" in nessuna delle risposte correnti o nella domanda ... – tobyodavies

+0

Se si guarda il riferimento alla funzione in quel link ROW_COUNT() è una delle funzioni e si afferma che fornisce "Il numero di righe aggiornate ". Allora, perché il voto negativo? – Jason

Problemi correlati