我的存储过程如下:
delimiter //
create procedure Pro_orders  (usersName1 varchar(40),
ordersPrice1 varchar(40), ordersDatetime1 varchar(40),out ordersId int )
begin 
start transaction;
insert into orders(usersName,ordersPrice,ordersDatetime)
values (usersName1,ordersPrice1,ordersDatetime1);
select max(ordersId) into ordersId
from orders ;
commit;
end
//我在命令行调用的语句如下:
call Pro_orders('liuys','92.0','2009-5-25 14:38:90',@a);这样就会把结果输出到@a里面了,但是我查询的时候查到的是null,查询如下:
select @a;
null
大家帮我看看,是哪里出错了,我在线等...

解决方案 »

  1.   

    转入的变量参数名改一下,和表中的字段名重复了。导致MySQL认为 select max(ordersId)  中的也是参数了。delimiter //
    create procedure Pro_orders  (usersName1 varchar(40),
    ordersPrice1 varchar(40), ordersDatetime1 varchar(40),out ordersId1 int )
    begin 
    start transaction;
    insert into orders(usersName,ordersPrice,ordersDatetime)
    values (usersName1,ordersPrice1,ordersDatetime1);
    select max(ordersId) into ordersId1
    from orders ;
    commit;
    end
    //