使用「mysqldump」批次匯出CSV
在MySQL 資料管理領域,將表格內容匯出為CSV 格式可能是一項至關重要的任務。雖然“mysqldump”是一個強大的資料庫備份實用程序,但它缺少將每個表專門匯出為 CSV 的選項。本文探討了一種結合「mysql」和後處理來實現此目的的替代方法。
「mysql」與「-B」參數
癥結所在我們的解決方案的關鍵在於利用「mysql」實用程式中的「-B」參數。此參數指示程式以製表符分隔的格式顯示結果。透過透過「sed」管道輸出,我們可以進一步操作資料以建立帶有標題的 CSV 檔案。
Bash 腳本迭代
匯出資料庫中,我們可以利用 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」的限制,並在操作輸出資料方面提供了更大的靈活性。
以上是如何使用'mysql”和'sed”將所有 MySQL 表批量匯出到 CSV 檔案?的詳細內容。更多資訊請關注PHP中文網其他相關文章!