create procedure saveorderitem(oid bigint,pid bigint,pq int,pname varchar(32),pnumber int,pprice double)
begin
declare exit handler for sqlexception rollback;
declare updatenumber int;
set updatenumber=pnmuber-pq;
insert into orderitem(pname,pid,price,number,oid) values(pname,pid,pprice,pq,oid);
update product set number=updatenumber where pid=pid;
commit;
end;
这段代码哪里错误了!
Variable or condition declaration alter cursor or handler  declaration

解决方案 »

  1.   

    create procedure saveorderitem(
    oid bigint,
    pid bigint,
    pq int,
    pname varchar(32),
    pnumber int,
    pprice double)
    begin
    declare updatenumber int; -- ACMAIN, 变量的声明必须在handler之前,换下顺序就可以了。
    declare exit handler for sqlexception rollback;
    set updatenumber=pnmuber-pq;
    insert into orderitem(pname,pid,price,number,oid) values(pname,pid,pprice,pq,oid);
    update product set number=updatenumber where pid=pid;
    commit;
    end;
      

  2.   

    谢谢,您真是好人,我看到您在csdn帮过很多人。