2013-08-27 63 views
1

我正在做一個事件,每分鐘運行並提取表格上的某些列並創建一個excel格式的輸出文件如何在MySQL輸出文件上添加時間戳?

由於我無法覆蓋文件,因此我想在文件名上附加一個時間戳所以它會創建獨特的excel文件名。

這裏是我的事件

CREATE EVENT IF NOT EXISTS 'Extract_Users' 

ON SCHEDULE EVERY 1 Minute 

COMMENT 'Data Extraction' DO SELECT userID, email, id FROM table_one.user_name 

INTO OUTFILE 'C:\path\path\Desktop\test\user.xls' 

回答

0

我覺得有準備發言的幫助下樣品,就可以實現它。未經測試,但我認爲值得投籃。

DELIMITER $$ 
    CREATE EVENT IF NOT EXISTS 'Extract_Users' 
    ON SCHEDULE EVERY 1 Minute 
    COMMENT 'Data Extraction' 
    DO 
    BEGIN 
    SET @sql_text = CONCAT("SELECT userID, email, id FROM table_one.user_name INTO OUTFILE INTO OUTFILE 'C:\path\path\Desktop\test\'" , DATE_FORMAT(NOW(), '%Y%m%d') , "user.xls'"); 
    PREPARE s1 FROM @sql_text; 
    EXECUTE s1; 
    DEALLOCATE PREPARE s1; 
    END $$ 
    DELIMITER ; 

希望這會有所幫助。

〜K

+0

你好Metalfight,我試過你的腳本修訂,但它沒有文字。我也刪除了雙INTO OUTFILE,但它不起作用。 – Ivy

+0

林不知道什麼是錯的,但它不是我指定 DELIMITER $$ CREATE EVENT IF NOT EXISTS'Extract_Users' ON SCHEDULE每1分鐘 COMMENT 'Extract_Users' DO BEGIN 選擇文件夾中生成輸出@sql_stmt = CONCAT(「SELECT userID,email,id FROM user_tabe.user_info INTO OUTFILE'C:\ path \ path \ Desktop \ test \ Log - 」,DATE_FORMAT(NOW(),'%​​Y-%m-%d% T '),「' XLS。」); 準備從@sql_stmt提取; EXECUTE extrct; DEALLOCATE PREPARE s1; END $$ DELIMITER; – Ivy

0

感謝metalfight給我如何接近事件的想法。

這是我的問題的答案。這工作。

DELIMITER $$

CREATE EVENT IF NOT EXISTS Extract_Users

ON SCHEDULE每1分鐘COMMENT 'Extract_Users'

DO

BEGIN

SET @sql_stmt: = concat(「SELECT userID,email,id FROM user_table.user_info INTO OUTFILE C:/ path/path/desktop/test/Users - 「,DATE_FORMAT(now(),'%​​Y-%m-%d_%H%i%s'),」。xls'「);

PREPARE extrct from @sql_stmt;

EXECUTE extrct;

DEALLOCATE PREPARE extrct;

END $$

DELIMITER;

相關問題