루프 내부에 프로 시저를 만들려고합니다.하지만이 코드를 호출하면 첫 번째 레코드가 표시되고 interate되지 않습니다.MYSQL 루프는 첫 번째 레코드 만 표시합니다.
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도 표시합니다.
대신 루프를 사용해 보았습니다.
나는 mysql에서 속편과 함께 일하고있다. 5.5
고마워!
? 귀하의 오류와 관련이 없지만 아마도 이상하게 보입니다. – ethrbunny
사실, 나는 while 루프 (트랜잭션이 아니고 커밋되지 않음) 만 가지고 노력했지만 동일한 문제가있었습니다. 해결책을 찾고 나는이 예제를 발견했다. (원래는 "insert"가 아니고 "select"가 아니다.) 그러나 첫 번째 레코드의 문제 만 수정하면 안된다. – Vertig0
수동으로 여러 항목을 선택하는 경우 모든 결과 집합을 처리 할 수 있습니까? 왜 단 하나가 아닌 여러 개의 선택을하고 싶습니까? –