sp 程序delimiter //
create procedure ma()
begin
declare i int default 0;
while i<11 do
set i=i+1;
select i;
end while;
end //
delimiter ;
1+2+...+9+10为什么这个程序无法实现累加效果//请说明这个程序的缺陷和改进方法。。谢谢各位大哥

解决方案 »

  1.   

    delimiter //
    create procedure ma()
    begin
    declare i int default 0;
    declare j int default 0;
    while i<11 do
    set j=j+i;
    set i=i+1;
    end while;
    select j;
    end //
    delimiter ;
    小改了一下
      

  2.   

    mysql> call ma();
    +------+
    | j    |
    +------+
    |   55 |
    +------+
    1 row in set (0.00 sec)Query OK, 0 rows affected (0.00 sec)
      

  3.   

    顺便问一下
    delimiter //
    create procedure test07()
    begin
    declare i int ;
    set i=1;     --这个地方设置成i=1 可以输入点东西。。但是i=0为什么是无限循环?  
    while i<10 do
    set i=i+1;
    select i;
    end while;
    end //
    delimiter ;
      

  4.   

    set i=1;     --这个地方设置成i=1 可以输入点东西。。但是i=0为什么是无限循环?  set i=0; 你是如何知道它是无限循环的呢?
    应该不会,估计你是自己看错了。