添加图书,如果数据库里有该图书信息,就把库存量增加, 如果没有就新增加条目
这个语句怎么写??

解决方案 »

  1.   


    merge into a 
    using b
    on (a.a=b.b)
    when matched then update xxxxx
    when not matched then insert (xxx) values(xxx);
      

  2.   

    很好的merge,另外就是存储了,感觉没必要写存储
      

  3.   

    declare
     vi number :=0;
     v_rowid varchar2(18);
    begin
      begin
        select t.rowid 
        into v_rowid
        from tablexxx t
        where t.idxx = 'xxxid';
      exception
        when others then
          v_rowid := '';
      end;
      if v_rowid is null then
        insert into xxx......;
      else 
        update tablexxx t
        set  ......
        where t.rowid = v_rowid;
      end if;
    exception
      when others then
        null;
    end;
      

  4.   

    如果能用merge 最好, merge 要求select 出来的数据比较严格,on 里的 条件 必须唯一