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 變數並將值替換為空值。

下面是預設情況下影象變數值如何呈現的螢幕截圖。

mysql 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;

該命令允許使用者指定表中存在的轉義序列。表格內的列由逗號、, 或管道| 或製表符分隔。

可以在插入時使用上述命令和特定命令對其進行配置。

上述命令的詳細闡述如下。

  1. SELECT * 命令用於選擇特定表的所有記錄。
  2. INTO OUTFILE 關鍵字向伺服器表明特定命令將對檔案進行輸出操作。
  3. filename 說明了插入輸出的檔案。
  4. FIELDS TERMINATED BY 選項允許使用者指定列和屬性分隔所需的字元。它增加了檔案的可讀性。關鍵字允許使用者轉義 CSV 檔案中的特殊字元。
  5. OPTIONALLY ENCLOSED BY 選項不是一個應該提供的強制性選項。它允許使用者提供字串格式的序列。
  6. LINES TERMINATED BY 選項允許將\n 轉義序列視為輸出檔案中的換行符。此選項有助於更好地理解輸出檔案中的表格和解釋。
  7. 最後,可以提供一個表名,它包含了整個命令。上面給出的所有選項都被包裝並限制在 table_name 上。需要對以下語句執行操作。

下面提供了 MySQL 命令提示符的影象。

帶有選項的 select into outfile 命令

它顯示了在本地 MySQL 命令提示符下執行的命令。

上述命令在 CSV 檔案中的輸出

現在,上面的輸出是使用 outfile 命令建立的檔案中存在的記錄。