我有桌子温度:
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)
有可能吗? 请告诉我如何做到这一点。
答案 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;
如果出于性能原因确实需要,只创建一个新表。
如果您确实创建了一个新表,那么当值更改(temp
,insert
,update
)时,您还必须为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)