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.

  1. C'è un modo per fare tutto in un unico linea? (Append sed comando per convertire il file txt a csv)
  2. Come utilizzare un chiamata os.system nel file sql? Sara lavoro?
È stato utile?

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
scroll top