2014-09-12 87 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; 

文檔: