0

我正在尝试创建一个内部带有循环的过程,但是当我调用它时,只显示第一条记录并且不交互。

delimiter //
create procedure load_foo_test_data()
begin

declare v_max int unsigned default 10;
declare v_counter int unsigned default 1;

select COUNT(*) into v_max FROM emp;

start transaction;
while v_counter < v_max do
    select * from emp where emp_id = v_counter;
    set v_counter=v_counter+1;
end while;
commit;
end 
//
delimiter ;

当我调用该程序时,它只显示第一条记录(ID 为 1)。

我尝试使用“select v_counter”,也只显示 1。

并尝试使用循环而不是 while 和相同的东西。

我正在使用 mysql 5.5 中的 sequel pro

谢谢!

4

2 回答 2

-1

我认为你应该使用

while ( ) {

    // do this

}
于 2012-12-13T14:48:19.087 回答
-1

尝试使用

SET v_counter = 0;    
REPEAT
IF v_counter < v_max do THEN
    select * from emp where emp_id = v_counter;
    set v_counter=v_counter+1;
END IF;
UNTIL v_counter END REPEAT;
于 2017-09-07T23:37:47.617 回答