我有一个典型的基于LAMP的站点+ Zend框架,其中有一个基表和一个汇总表。汇总表用于显示报告中的数据。基于触发器和存储过程更新汇总表
基地台 - 在平均每天20次
Status | Count
1 | 4
2 | 2
基表将被改变(插入,更新,删除) -
ID | Status
1 | 1
2 | 1
3 | 2
4 | 2
5 | 1
6 | 1
汇总表。
目前,我正在使用触发器调用存储过程,该存储过程将根据基表更新汇总表。
这是存储过程。
CREATE PROCEDURE UpdateSummary()
BEGIN
UPDATE summary a
INNER JOIN
(SELECT status, count(*) c from base group by status) b
ON a.status = b.status
SET a.count = b.c;
END
而且我有3个触发器(每个触发器 - 插入,删除和更新)。我已经在下面单独显示了插入样本。其他与此类似。
CREATE TRIGGER S_T_TRIGGER_I
AFTER INSERT ON base
FOR EACH ROW
CALL UpdateSummary();
我想汇总表进行更新到最新值总是。 像这样使用触发器和存储过程是最好的方法还是有一个优雅的方式来做到这一点?