2016-09-14 63 views
0

我試圖生成一個每月運行一次的輸出,它將一個表內某列的值附加到OutFile名稱,這甚至有可能嗎?MySQL OutFile使用表中的數據

表是MYTABLE和列COL1包含「201601」在一分鐘

我想我OutFile將顯示「/ tmp目錄/ Output_201601」,其中上一次運行的201601都將自動更改爲201602 etc

回答

1

你可以試着用存儲過程來做到這一點。例如,當您調用此過程時,它會將表mytable中的數據導出爲名稱爲的文件D:/ tmp/Output_ +來自字段Col1的最大值。

CREATE PROCEDURE `PrepareReport`() 
BEGIN 
SET @OutputFileName := 'D://tmp//Output_'; 

SELECT Col1 INTO @ReportNr FROM mytable ORDER BY Col1 DESC LIMIT 1; 

SET @q1 := concat("SELECT * FROM mytable INTO OUTFILE '", @OutputFileName, @ReportNr, ".csv'"); 
PREPARE s1 FROM @q1; 
EXECUTE s1; 
DEALLOCATE PREPARE s1; 
END 
+0

非常感謝,這工作非常好 –