임시 테이블을 생성하고 임시 테이블에서 행을 가져 와서 쿼리를 실행하는 프로 시저를 작성했습니다. 임시 테이블에 약 13486 개의 행이 있습니다. 그러나 프로 시저를 호출 할 때 나는 프로 시저가 임시 테이블에서 107 행을 가져온 후 종료되는 것을 관찰했습니다. 또한이 값은 상수가 아니라는 것을 관찰했습니다. 가끔은 107이고 다른 시간은 114이고 다른 시간은 단지 100입니다. 왜 이런가요? 무슨 일이 생겨? 도움이 필요해? 누군가 제발 .. 제 절차가 있습니다. 그리고 1000 루프 이상 동안 루프가 종료되는 것을 알게되었습니다. 이것을 극복 할 수있는 방법을 제안 해주십시오.while 루프가 일부 데이터를 가져온 후에 종료합니다.
DELIMITER $$
DROP PROCEDURE IF EXISTS `lookup`.`test` $$
CREATE PROCEDURE `lookup`.`test`()
BEGIN
CREATE TEMPORARY TABLE lookup.airportname(id int AUTO_INCREMENT,PRIMARY KEY(id))
AS (select distinct airport_id from lookup.airport);
SET @num=0;
SET @arpt=NULL;
SELECT count(*) INTO @num FROM airportname;
SET @i=0;
while @i<@num do
SELECT airport_id INTO @arpt FROM airportname WHERE [email protected];
select @arpt,@i;
set @[email protected]+1;
end while;
END $$
DELIMITER ;
mysql 쿼리 브라우저를 사용하고 있습니다. 감사합니다.
어떻게 종료되는지 어떻게 알 수 있습니까? – palindrom
잘 모르겠다 .. : – user2037445
출력이 다듬어 져있을 수 있습니다. 루프 내부의 선택을 삭제하고 루프 뒤에서 같은 선택을하십시오. @i가 13487인지 확인해 봅니다. – palindrom