2
有在表中,標誌1,marks2,marks3和總共4列。當我們插入標誌1,marks2和marks3 觸發應該計算出總的和更新的總。更新表列後插入到相同的表-PLSQL
有在表中,標誌1,marks2,marks3和總共4列。當我們插入標誌1,marks2和marks3 觸發應該計算出總的和更新的總。更新表列後插入到相同的表-PLSQL
create or replace trigger calc_total
before insert on your_table
for each row
begin
:new.total := :new.marks1 + :new.marks2 + :new.marks3;
end;
如果碰巧你使用的是Oracle 11g,以達到預期的效果,你可以在虛擬列添加到表:
SQL> create table your_table(
2 marks1 number,
3 marks2 number,
4 marks3 number
5 )
6 ;
Table created
SQL>
SQL> alter table your_table
2 add total number generated always as (nvl(marks1, 0)+
3 nvl(marks2, 0)+
4 nvl(marks3, 0)
5 )
6 ;
Table altered
SQL> insert into your_table(marks1,marks2,marks3)
2 values(1,2,3);
1 row inserted
SQL> commit;
Commit complete
SQL> select * from your_table;
MARKS1 MARKS2 MARKS3 TOTAL
---------- ---------- ---------- ----------
1 2 3 6
只(乾淨)的方式來真正去。或低於使用11G的視圖,可以做同樣的 – Plouf 2013-02-10 18:01:26