2010-05-11 87 views
1

如何在.sql文件中調用以下內容?幫助MySQL(.sql)和Shell腳本

mysql -u username -h serverip db -e "select a, b, c, d from mytable" > '/home/dump/result.txt'; 

然後,我將不得不將選項卡分隔文件轉換爲我想要使用sed的csv。

  1. 有沒有辦法在一個 行嗎? (附加sed命令將 .txt文件轉換爲csv)
  2. 如何在.sql文件中使用 os.system調用?它會 工作嗎?

回答

0

試試這個:

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' 

--batch--skip-column-names文檔的更多信息。

+0

謝謝比爾。我們正在將數據庫服務器和客戶端相同的場景遷移到單個服務器。我有一堆.sql文件與選擇到outfile查詢這將不再工作。有沒有辦法在.sql文件中執行你的解決方案? – user337672 2010-05-11 17:03:06

+0

mysql客戶端沒有任何選項直接輸出到CSV。您將不得不將'sed'命令添加到調用mysql客戶端的腳本中。 – 2010-05-11 17:35:11

2

怎麼樣運行通過mysql控制檯客戶端的查詢:

SELECT ... FROM ... INTO OUTFILE '/path/to/file.csv' 
FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY "\n" 
+0

我沒有這個選項因爲客戶端服務器和數據庫服務器不同。謝謝! – user337672 2010-05-11 16:31:56