1

我有表温度:

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)

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

4

2 回答 2

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;
于 2013-07-11T11:32:13.560 回答
1

触发器应该可以解决您的问题

Create trigger trgtemp
after update on temp for each row
insert into newtemp (ind_type,pcount,ncount)
values (@param1,@param2,@param3)
于 2013-07-11T11:39:34.120 回答