將資料匯出到 MySQL 中的 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
命令建立的檔案中存在的記錄。
Rashmi is a professional Software Developer with hands on over varied tech stack. She has been working on Java, Springboot, Microservices, Typescript, MySQL, Graphql and more. She loves to spread knowledge via her writings. She is keen taking up new things and adopt in her career.
LinkedIn