【问题标题】:MySQL Triggers, summary each minuteMySQL 触发器,每分钟汇总一次
【发布时间】:2014-09-12 10:39:29
【问题描述】:

我有一些连续生成的数据,我想知道我该如何做这样的事情: 每分钟需要从前一分钟开始的 x 条记录,进行某种汇总并将其放在第二个表中。 表看起来像: http://puu.sh/bvNA3/9616f1037f.png 列:ID、ID_pistol、ID_container、start_time、stop_time、音量、brutto、netto、温度 在一分钟的结果中,它将是体积、bruto、netto cols 和平均温度的总和。

如果有人有什么建议,我将不胜感激。

【问题讨论】:

    标签: mysql triggers summary


    【解决方案1】:

    为此使用事件调度程序。假设第一个表中的IDAUTO_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);
    

    这仅在 Event Scheduler 启动时有效。具有管理员权限的用户可以检查并启动它。检查:

    SHOW VARIABLES  like 'event_scheduler';
    

    答案必须是ON。如果是OFF,则运行:

    SET GLOBAL event_scheduler = ON;
    

    文档:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多