HOWTO · MySQL
將資料匯出到 MySQL 中的 Outfile
本文介紹如何將 SQL 匯出到 outfile。
本頁內容
在某些情況下,使用者希望在輸出檔案或某些本地儲存中捕獲操作。儲存可以是 CSV 檔案或記事本,其中可以放置 SQL 的內容。
該檔案是使用 MySQL 的 outfile 命令生成的。此命令允許使用者將 SQL 輸出匯出並捕獲到特定檔案中。
select into outfile 命令允許使用者在特定列中插入行,並且使用選項允許讀取表和輸出檔案中所需的格式型別。它有助於以使用者定義的格式表示檔案中的表。
語法:
select * from stu into outfile "outfile.txt";
ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option, so it cannot execute this statement
當使用者嘗試執行命令時,會填充上述錯誤。錯誤填充的原因是 MySQL 伺服器安裝,預設配置為 .ini 檔案中的 --secure-file-priv。
該選項不允許出於安全目的匯入和匯出庫。此變數存在於限制使用者將資料共享到外部檔案的 sqld 檔案下。
可以使用以下命令檢視為變數 --secure-file-priv 設定的當前路徑:
SHOW VARIABLES LIKE "secure_file_priv";
使用帶有變數名稱的路徑更改配置變數值。遍歷到變數中顯示的目的地。
在該位置找到 my.ini。搜尋 secure_file_priv 變數並將值替換為空值。
下面是預設情況下影象變數值如何呈現的螢幕截圖。
導航到變數存在的路徑。使用者將能夠找到 my.ini 檔案。
更改相同變數的配置並再次儲存檔案。重新啟動伺服器以檢視錯誤是否消失。
上述命令的變化如下:
SELECT stu_id, stu_name, stu_age, stu_add INTO OUTFILE 'outfile.csv'
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
FROM tablename;
該命令允許使用者指定表中存在的轉義序列。表格內的列由逗號、, 或管道| 或製表符分隔。
可以在插入時使用上述命令和特定命令對其進行配置。
上述命令的詳細闡述如下。
SELECT *命令用於選擇特定表的所有記錄。INTO OUTFILE關鍵字向伺服器表明特定命令將對檔案進行輸出操作。filename說明了插入輸出的檔案。FIELDS TERMINATED BY選項允許使用者指定列和屬性分隔所需的字元。它增加了檔案的可讀性。關鍵字允許使用者轉義 CSV 檔案中的特殊字元。OPTIONALLY ENCLOSED BY選項不是一個應該提供的強制性選項。它允許使用者提供字串格式的序列。LINES TERMINATED BY選項允許將\n轉義序列視為輸出檔案中的換行符。此選項有助於更好地理解輸出檔案中的表格和解釋。- 最後,可以提供一個表名,它包含了整個命令。上面給出的所有選項都被包裝並限制在 table_name 上。需要對以下語句執行操作。
下面提供了 MySQL 命令提示符的影象。
它顯示了在本地 MySQL 命令提示符下執行的命令。
現在,上面的輸出是使用 outfile 命令建立的檔案中存在的記錄。