create or replace trigger tri before insert on table1 for each row begin -- 军事:3 政治:2 其它:1 -- if :new.leibie = '军事' then select 3 into :new.fenzhi from dual; elsif :old.leibie = '政治' then select 2 into :new.fenzhi from dual; else select 1 into :new.fenzhi from dual; end if; end tri;
上面的有点问题 create or replace trigger tri before insert on table1 for each row begin -- 军事:3 政治:2 其它:1 -- if :new.leibie = '军事' then select 3 into :new.fenzhi from dual; elsif :new.leibie = '政治' then select 2 into :new.fenzhi from dual; else select 1 into :new.fenzhi from dual; end if; end tri;
create or replace trigger TG_NAME before insert on table1 for each row begin :new.fenzhi:=1; if :new.leibie='军事' then :new.fenzhi:=:new.fenzhi+2; elsif :new.leibie='政治' then :new.fenzhi:=:new.fenzhi+1; end if;if :new.jibie='高' then :new.fenzhi:=:new.fenzhi+2; elsif :new.jibie='中' then :new.fenzhi:=:new.fenzhi+1; end if; end;
楼上的,为什么要:new.fenzhi:=1给他一个初值
create or replace trigger TG_NAME before insert on table1 for each row begin if :new.leibie='军事' then :new.fenzhi:=:new.fenzhi+2; elsif :new.leibie='政治' then :new.fenzhi:=:new.fenzhi+1; elsif :new.jibie='高' then :new.fenzhi:=:new.fenzhi+2; elsif :new.jibie='中' then :new.fenzhi:=:new.fenzhi+1; elsif :new.fenzhi:=:new.fenzhi+1; end if; end;
不包括。
例如: 插入 table1(xuhao,leibie) values(0001,'军事');得到的分值是 3(分值通过触发器自动获取)
0001 军事 3
0002 政治 2 那这两条记录中的分值是怎么来的?
是不是表里还有记录没全都列出来
before insert on table1
for each row
begin
-- 军事:3 政治:2 其它:1 --
if :new.leibie = '军事' then
select 3 into :new.fenzhi from dual;
elsif :old.leibie = '政治' then
select 2 into :new.fenzhi from dual;
else
select 1 into :new.fenzhi from dual;
end if;
end tri;
create or replace trigger tri
before insert on table1
for each row
begin
-- 军事:3 政治:2 其它:1 --
if :new.leibie = '军事' then
select 3 into :new.fenzhi from dual;
elsif :new.leibie = '政治' then
select 2 into :new.fenzhi from dual;
else
select 1 into :new.fenzhi from dual;
end if;
end tri;
类别 军事 分值+2 政治 分值+1
级别 高 分值+2 中 分值+1 leibie jibie fenzhi
军事 高 4 --军事+2 高+2
政治 中 2 --政治+1 中+1
before insert on table1
for each row
begin
:new.fenzhi:=1;
if :new.leibie='军事' then
:new.fenzhi:=:new.fenzhi+2;
elsif :new.leibie='政治' then
:new.fenzhi:=:new.fenzhi+1;
end if;if :new.jibie='高' then
:new.fenzhi:=:new.fenzhi+2;
elsif :new.jibie='中' then
:new.fenzhi:=:new.fenzhi+1;
end if;
end;
before insert on table1
for each row
begin
if :new.leibie='军事' then
:new.fenzhi:=:new.fenzhi+2;
elsif :new.leibie='政治' then
:new.fenzhi:=:new.fenzhi+1;
elsif :new.jibie='高' then
:new.fenzhi:=:new.fenzhi+2;
elsif :new.jibie='中' then
:new.fenzhi:=:new.fenzhi+1;
elsif :new.fenzhi:=:new.fenzhi+1;
end if;
end;