DECLARE at_end INT DEFAULT 0;
DECLARE PIID INTEGER DEFAULT 0 ;
DECLARE PINT INTEGER DEFAULT 0 ;
DECLARE not_found CONDITION FOR SQLSTATE '02000';
--DECLARE PCOUNT INTEGER;
DECLARE c1 CURSOR FOR
SELECT IID FROM YH;
DECLARE CONTINUE HANDLER FOR not_found
SET at_end = 1;
OPEN c1;
SET PCOUNT=0;
ins_loop:
LOOP
FETCH c1 INTO PIID;
IF at_end <>0 THEN
LEAVE ins_loop;
END IF;
SET PCOUNT=PCOUNT+1;
SELECT IID INTO PINT FROM YH WHERE 0=1;
END LOOP;
以上这个存储过程,原本期望的循环次数是yh表行数, 但 SELECT IID INTO PINT FROM YH WHERE 0=1;不返回任何行,所以at_end立刻会=1,只循环了一次就退出了.