创建保存另一个表的列并计算另一个表的值的表

时间:2013-07-11 11:29:25

标签: mysql sql database

我有桌子温度:

id  sentence pcount ncount
1      -       3      5   
2      -       2      6
3      -       1      5
4      -       7      2

.....

我想从上面的表中创建表,当上表更改时应该更新

New_temp

ind_type     Index_val
pcount         sum(pcount)
ncount         sum(ncount)

有可能吗? 请告诉我如何做到这一点。

2 个答案:

答案 0 :(得分:3)

不要创建新表。只需创建一个视图:

create view new_temp
    select 'pcount' as ind_type, sum(pcount) as thecount
    from temp union all
    select 'ncount', sum(ncount)
    from temp;

如果出于性能原因确实需要,只创建一个新表。

如果您确实创建了一个新表,那么当值更改(tempinsertupdate)时,您还必须为delete表编写触发器。视图要简单得多。

编辑:

哦,我误解了你想要的表的格式。您想要一行有两列。这更容易:

create view new_temp
    select sum(pcount) as pcount, sum(ncount) as ncount
    from temp;

答案 1 :(得分:1)

触发器应解决您的问题

Create trigger trgtemp
after update on temp for each row
insert into newtemp (ind_type,pcount,ncount)
values (@param1,@param2,@param3)