MySQL如何自动更新聚合表(基于另一个表)?[duplicate]

5jvtdoz2  于 2023-01-12  发布在  Mysql
关注(0)|答案(1)|浏览(119)
    • 此问题在此处已有答案**:

How do I create a view in MySQL? [closed](2个答案)
3天前关闭。
我在MySQL数据库中有一个表(table1),其中的数据类似于:
| 类别|总销售量|岁入|利润|
| - ------|- ------|- ------|- ------|
| 果实|三十二|二百|一百五十|
| 蔬菜|十二|五十|二十三|
| 芯片|二十三|一百七十|一百一十|
| 果实|四十三|三百|一百八十|
| 芯片|五个|二十五|十五|
新数据通过使用sqlalchemy的python脚本定期插入到表中(使用Pandas将csv文件附加到mysql表中)。
我想使用查询创建一个基于类别的聚合表(table2),并且每当我向table1添加新记录时,聚合都会更新。
例如,在执行查询之后:

CREATE TABLE table2 AS
SELECT Category, AVG(total_sold) avg_sold, AVG(revenue) avg_revenue, AVG(profit) avg_profit
FROM table1
GROUP BY 1

我得到表2为:
| 类别|平均销售量|平均收入|平均利润|
| - ------|- ------|- ------|- ------|
| 果实|三十七点五|二百五十|一百六十五|
| 蔬菜|十二|五十|二十三|
| 芯片|十四|九十七点五|六十二点五|
现在,如果我在table1中插入了几条新记录,我怎样才能使table2自动更新呢?(根据所有table1记录(包括新添加的记录)重新计算所有聚合)
我读过关于创建触发器的文章,但我不确定如何执行它,也不确定它是否能在这样的情况下工作。
我会很感激任何帮助。

pdtvr36n

pdtvr36n1#

MySQL不支持“物化视图”。你必须自己做聚合。建立一个单独的Summary Table并保持更新。一个简单的IODKU是做维护的一种方法;该链接讨论了其他内容,例如每天数据的夜间批量更新。

相关问题