我寫過一個程序,它創建一個臨時表並通過從臨時表中獲取行來執行查詢。我在臨時表中有大約13486行。但是當我調用過程我觀察到,從臨時表中取出107行後,程序正在終止。此外,我還觀察到,該值不是常數。有時它是107,而另一次是114,而其他時間只有100。會發生什麼?請幫助嗎?有人請。這裏是我的程序。我知道while循環將終止> 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 2013-03-27 09:18:33
我不確定.. :( – user2037445 2013-03-27 09:19:08
輸出可能會被修剪,刪除循環內部的選擇並在循環後執行相同的選擇。讓我們來看看@i是13487. – palindrom 2013-03-27 09:20:40