Aiuto con MySQL (sql) e Shell Script
Domanda
Come chiamare in quanto segue in un file sql?
mysql -u username -h serverip db -e "select a, b, c, d from mytable" > '/home/dump/result.txt';
I dovrà poi convertire lo scheda separata di file in formato CSV per la quale voglio usare sed.
- C'è un modo per fare tutto in un unico linea? (Append sed comando per convertire il file txt a csv)
- Come utilizzare un chiamata os.system nel file sql? Sara lavoro?
Soluzione
Prova questo:
mysql --batch --skip-column-names -u username -h serverip db \
-e "select a, b, c, d from mytable" \
| sed -e 's/\t/,/g' \
> '/home/dump/result.txt'
vedi Documentazione per --batch
e --skip-column-names
per maggiori informazioni.
Altri suggerimenti
Che dire per eseguire la query tramite client console mysql
:
SELECT ... FROM ... INTO OUTFILE '/path/to/file.csv'
FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY "\n"
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow