我正在制作一个每分钟运行一次的事件,并在表格中提取某些列并以excel格式创建输出文件
由于我无法覆盖文件,我想在文件名上附加一个时间戳,以便创建唯一的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 :(得分: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 ;
希望这会有所帮助。
〜ķ
答案 1 :(得分:0)
感谢金属战斗让我了解如何接近赛事。
以下是我的问题的答案。这很有效。
DELIMITER $$
如果不是
,则创建事件Extract_Users
ON SCHEDULE每1分钟评论'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;