我编写了一个创建临时表并通过从临时表中获取行来执行查询的过程。我在临时表中有大约 13486 行。但是当我调用该过程时,我观察到该过程在获取后终止临时表中的 107 行。此外,我还观察到这个值不是恒定的。有时是 107,有时是 114,有时只是 100。为什么会发生这种情况?请需要帮助?有人请..这是我的程序。我知道while循环将终止> 1000次迭代。请建议我一种方法来克服这个问题。
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 id=@i;
select @arpt,@i;
set @i=@i+1;
end while;
END $$
DELIMITER ;
我正在使用mysql查询浏览器。谢谢。