2016-09-14 3 views
0

zu verwenden Ich versuche, einen Export zu generieren, der monatlich ausgeführt wird, der einen Wert aus einer der Spalten in einer Tabelle an den OutFile-Namen anfügt, ist das überhaupt möglich?MySQL OutFile, um Daten aus Tabelle

Der Tisch ist mytable und die Spalte col1 die „201601“ in der Minute enthält

ich meine OutFile möchte zeigen „/ tmp/Output_201601“, wo die 201.601 auf nächsten Lauf wird auf 201.602 automatisch geändert haben usw.

Antwort

1

Sie können versuchen, dies mit gespeicherter Prozedur zu tun. Eg. Wenn Sie diese Prozedur aufrufen, exportieren Sie Daten aus der Tabelle mytable in die Datei mit dem Namen D:/tmp/Output_ + oberster Wert aus Feld 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

Vielen Dank, das hat wirklich gut funktioniert –

Verwandte Themen