应该没错吧,执行时只提示:查询不能被执行。错误提示的地方只显示“!描述”。
帮忙看看,急!!!!!!delimiter//
create procedure borrow_book(out par1 varchar(20),par2 varchar(20))
begindeclare n int;
update table books
set s_num=s_sum-1 where bID=par1;
update table books
set state='已借出' where bID=par1 and s_num<=0;set n=(select max(eNo) from borrow);
insert into borrow(eNo,bID,bcID,borT)
values(n+1,par1,par2,(select current_date()));end;
//

解决方案 »

  1.   

    par1 是传进来的参数吧 ?你干嘛要out?
      

  2.   

    delimiter //
    create procedure borrow_book( par1 varchar(20),par2 varchar(20))
    begindeclare n int;
    update books
    set s_num=s_sum-1 where bID=par1;
    update books
    set state='已借出' where bID=par1 and s_num<=0;set n=(select max(eNo) from borrow);
    insert into borrow(eNo,bID,bcID,borT)
    values(n+1,par1,par2,current_date());end;
    //
    最好把你的 create table 语句提供,这样别人可以直接进行调试,而不只是用眼睛来看。