2014-09-12 57 views
1

我有一些数据连续产生,我想知道我可以做这样的事情: 每一分钟它将需要一分钟前x记录,做出某种总结,并把它放在第二个表。 表看起来像: http://puu.sh/bvNA3/9616f1037f.png 列数:ID,ID_pistol,ID_container,START_TIME,STOP_TIME,体积,brutto,内托,温度在 结果一分钟将是体积,bruto,内托的cols和温度的平均值之和。MySQL触发器,每分钟总结

如果有人有一些建议,我将不胜感激。

回答

1

为此使用事件调度程序。假设ID在第一个表中有AUTO_INCREMENT选项。然后我建议添加第二个表last_id列(记录最后处理的ID从第一个表)。然后创建活动:

CREATE EVENT myevent 
    ON SCHEDULE EVERY 1 MINUTE 
    DO 
    INSERT INTO second_table(volume_sum, bruto_sum, netto_sum, temperature_avg, last_id) 
    SELECT SUM(f.volume), SUM(f.brutto), SUM(f.netto), AVG(f.temperature), MAX(f.ID) 
     FROM first_table f 
    WHERE f.ID > IFNULL((SELECT MAX(last_id) FROM second_table), 0); 

只有在事件调度程序启动时才有效。拥有管理员权限的用户可以检查并启动它。检查:

SHOW VARIABLES like 'event_scheduler'; 

答案必须是ON。如果是OFF然后运行:

SET GLOBAL event_scheduler = ON; 

文档: