使用「mysqldump」批次匯出CSV
在MySQL 資料管理領域,將表內容匯出為CSV 格式可能是一項至關重要的任務。雖然“mysqldump”是一個強大的資料庫備份實用程序,但它缺少將每個表專門匯出為 CSV 的選項。本文探索了一種結合「mysql」和後處理來實現此目的的替代方法。
「mysql」與「-B」參數
癥結所在我們的解決方案的關鍵在於利用「mysql」實用程式中的「-B」參數。此參數指示程式以製表符分隔的格式顯示結果。透過透過「sed」管道輸出,我們可以進一步操作資料以建立帶有標題的 CSV 檔案。
Bash 腳本迭代
匯出 a 中的所有表格資料庫中,我們可以利用 Bash 腳本循環遍歷表名清單。一種方法是組合以下指令:
mysql -u username -ppassword dbname -sN -e "SHOW TABLES;" | \ for tb in $(mysql -u username -ppassword dbname -sN -e "SHOW TABLES;"); do mysql -B -u username -p password database -h dbhost -e "SELECT * FROM $tb;" \ | sed “s/”/\””/g;s/'/\'/;s/\t/\”,\”/g;s/^/\”/;s/$/\”/;s/\n//g” > "$tb.csv" done
此腳本首先使用「SHOW TABLES」檢索表格清單並將其儲存在變數「tb」中。然後它迭代每個表名並使用“-B”參數執行“SELECT *”查詢。結果輸出由 'sed' 處理並儲存在以表命名的 CSV 檔案中。
結論
透過組合'mysql 的'-B' 參數'和'sed'後處理,我們可以有效地將MySQL資料庫中的所有表導出為CSV格式。這種方法規避了「mysqldump」的限制,並在操作輸出資料方面提供了更大的靈活性。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3