我设计了一个应用程序来分析一个城市不同地方的计数频率数据.
我DT为每个计算站点设置了一个数据表(以下称为),如下所示:startDate(DATETIME),dataCount(INT).
每个记录都包含计数的开始日期和计数器前面的访问次数.每条记录的接收数量都很清楚.记录间隔取决于计数器(一般每小时数据).
我有一个表(以下简称resumeDT)来总结我的所有计数的网站:名称,dateReference,location,description... AND dailyAvg.
我想创建一个这种类型的触发器:
CREATE TRIGGER avgDT AFTER UPDATE,INSERT,DELETE ON DT
FOR EACH ROW UPDATE resumeDT SET avg= (SELECT AVG(tmp.sum)
FROM (SELECT sum(count) FROM DT GROUP BY DATE(date)) tmp)
WHERE dateReference="DT"
Run Code Online (Sandbox Code Playgroud)
对我来说有点麻烦的是,如果我一次插入500个值,我将再执行500次UPDATE.我想在最后执行一次更新查询.
我知道FOR EACH ROW触发器的语法是强制性的,但我能找到一种解决方法来做我想要的吗?
也许只使用触发器来增加一个mysql变量@DTChanged并调用一个@DTChanged每秒扫描一次的外部脚本.if (@DTChanged!= 0 and lastDTChanged==@DTChanged)(没有1s的插入或更新)=>更新resumeDT
您有任何建议或其他解决方案吗?
在此先感谢您的帮助.