如题,我创建的触发器如下,请问可不可以同时修改多个值,比如下面的例子,id1,id2,di3create trigger "tri_test"
before insert on test for each row
begin
select seq_test.nextval into :new.id1,new.id2,new.id3 from dual;
end tri_test;
谢谢大家了!

解决方案 »

  1.   

    --不能这样,可以改为Create or replace trigger "tri_test" 
    before insert on test
    for each  row 
    declare ID number(10);
    begin 
      select seq_test.nextval into ID from dual;
      select ID,ID,ID into :new.id1,new.id2,new.id3 from dual; 
    end tri_test; 
      

  2.   

    --上面少了冒号
    Create or replace trigger "tri_test" 
    before insert on test
    for each  row 
    declare ID number(10);
    begin 
      select seq_test.nextval into ID from dual;
      select ID,ID,ID into :new.id1,:new.id2,:new.id3 from dual; 
    end tri_test; 
      

  3.   

    可以,可以同时修改多个值,不过你的语句不对用SELECT的话,取出几个字段,就只能赋值给几个变量,应该这样做
    DECLARE
       id   nember; 
    begin 
    select   seq_test.nextval   into   id   from   dual; 
    :new.id1:=id;
    :new.id2:=id;
    :new.id3:=id;
    end;