PL / SQL过程通过添加3个标记来更新总字段

问题描述 投票:0回答:2

我创建了一个名为marks的关系,其中包含以下字段

create table marks (
    rollno numeric(5),
    Name varchar2(10),
    mark1 numeric(3),
    mark2 numeric(3),
    mark3 numeric(3),
    total numeric(3)
);

我在关系中插入了几行,即。

Insert into marks (rollno, Name, mark1, mark2, mark3)
    values(1, 'Caesar', 85, 90, 89);
Insert into marks (rollno, Name, mark1, mark2, mark3)
    values(2, 'Abi', 80, 87, 88);
Insert into marks(rollno, Name, mark1, mark2, mark3)
    values(3, 'Aish', 70, 89, 75);

现在,我想创建一个通过添加3个标记来更新total字段的过程。您能帮我吗?

sql oracle sql-insert
2个回答
1
投票

使用虚拟列:

create table marks (
    rollno numeric(5),
    Name varchar2(10),
    mark1 numeric(3),
    mark2 numeric(3),
    mark3 numeric(3),    
    total numeric(3) generated always as (mark1 + mark2 + mark3)
);

然后它是表的一部分,您无需做任何工作就可以使它保持最新。


0
投票
create or replace procedure find_total
as
begin
update marks set total=mark1+mark2+mark3;
dbms_output.put_line('Total updated');
end find_total;


begin
find_total;
end;
© www.soinside.com 2019 - 2024. All rights reserved.