有三个表 users(字段有userid(主键),utype(1代表会员 0代表普通用户) 
       ,orders (字段有 oid(订单ID),uid(userid的外键),ostate(3代表完成订单) 等其他键)
         orderitem订单项目表(主要字段有 oid(orders中oid的外键),)利用触发器实现订单项目中字段 price*icount>1000 后使得users表中的字段utype=1并且orders表中的ostate=3下面是我做的一个触发器 但是这个触发器存在问题 不成功啊 希望那为哥哥姐姐能帮帮忙!我是出学者,上课老师讲得不好 
从来就没听过他的课 我现在感到有些后悔啊!呜呜呜呜~~~~~~~~ 实在不行希望能给出个解决方案 
苦在orderitem与users怎么关联起来 触发器不熟悉啊!
 create or replace trigger trigger_name update or insert of price ,icount on  orderitem  
 for each row 
 declare  pprice orderitem.price%type;
begin
 
    if(price*icount>1000)
     pprice:=:new:price;  update  orders set ostate:='3'
     where price=pprice and orders.oid=orderitem.oid; 
     update  users set utype:='1' 
     where price=pprice and orders.oid=orderitem.oid and where orders.uid=users.userid 
  dbms_putout_line('升级了!');
  else
  dbms_putout_line('没有升级!');
  end if ;
end;

解决方案 »

  1.   

    where price=pprice and orders.oid=:New.oid;where users.userid=:New.userid;好多年不写了,我也不知道对不对了,你试试。
      

  2.   

    我又感觉是: where price=pprice and orders.oid:=:New.oid; 
                where users.userid:=:New.userid;
    我看了别人提供的一个方法 请你指点:
    create or replace trigger hunhetrigger 
    after insert or update on orderitem 
    for each row 
    declare 
     number; 
    begin 
    select userid into  
    from users u,orders ord,orderitem oder 
    where u.userid = ord.uid 
    and ord.oid = oder.oid 
    group by userid 
    having sum(oder.price*oder.icount)>1000 
    if  is not null then 
    update users set utype = '1' where userid = ; 
    update orders set ostate = '3' where uid= ; 
    end if; 
    end; 无论如何 我为你能给我答复 而感到非常高兴  真的心存感激 我是前几天注册的 第一个贴 你是第一个回复的! 很感谢~
     o(∩_∩)o...!
      

  3.   

    create or replace trigger trigger_name after update or insert of price ,icount on  orderitem  
    for each row 
    begin
       if (:new.price*:new.icount>1000) then
          update users set utype = 1 where oid=:new.oid;
          update orders set ostate=3 where oid=:new.oid;
       end if;
    end;
      

  4.   

    那个新的:new.oid从哪来啊? 而且这样好像也没更新要改的数据,关联不上啊!