MySQL中的触发器(如)事件计算当前行和上一行的值

时间:2014-03-10 21:44:31

标签: mysql triggers tableview calculated-columns

我有一个mysql数据库表,其中存储了一些关于不同(Web)服务的提交总数的原始指标数据。它看起来像这样:

ID,  timestamp,                Service_name, Commits,  TPS  
001, 2014-03-10  09:00:00,     serviceA,     1000  
002, 2014-03-10  09:00:00,     serviceB,     1300    
003, 2014-03-10  09:00:30,     serviceA,     1800  
004, 2014-03-10  09:00:30,     serviceB,     1700

尚未填充最后一列(平均成交/秒)。我想要实现的是,此列中的值是在插入不同服务提交的快照(全部具有相同时间戳)时计算的。

计算将是:( serviceX提交当前插入 - serviceX提交前一个插入)/(serviceX时间戳当前插入 - serviceX时间戳前一个插入)。

最后,我想在pChart中绘制每个服务的计算TPS(我自己在填写TPS时已经工作了!)

我做了一些研究:触发,计算/计算列,甚至可能创建一个新的数据库视图。但是我不确定如何进行下一步,我希望你们中的一些人可以指出我正确的方向。

数据库仅用于在监视器屏幕上显示这些服务指标,因此不会用于其他任何操作。

提前致谢。

1 个答案:

答案 0 :(得分:0)

如果您确定插入的顺序,那么您可以使用触发器(插入之前),您可以在其中:

a)选择最后一项服务的行 b)用计算

更新NEW.TPS

触发器是更好的选择,因为该列只计算一次(不需要更新/重新计算)。