我可以在create命令中使用select或使用triggeer;请帮帮我sql plus oracle 11g

时间:2015-05-28 00:22:43

标签: oracle oracle11g oracle10g oracle-sqldeveloper sqlplus

我希望当我插入account_sh值时自动计算新帐户中所有列的新总数以及account_sh的所有先前记录

像那样

id  account_sh   percentage  total
001    50             1        50

当我插入另一条记录时,它将是****

id     account_sh    percentage    total
001    50             0.25            200
002   150             0.75            200

create table main_sh (
    id_sh number (9),
    account_sh number not null,
    percentage_sh number(*,15) generated always as  (account_sh/total_sh),
    total_sh number generated always as select sum(account_sh) from main_sh);

1 个答案:

答案 0 :(得分:0)

我相信这样做的方法是在你的桌子上添加一个触发器,例如:

IF INSERTING THEN:
    IF :new.total_sh is NULL THEN
        SELECT sum(account_sh) from main_sh into total;
        :new.total_sh := total;
    END IF;
END IF;