【发布时间】:2014-02-21 21:19:05
【问题描述】:
我的存储过程是这样的:
CREATE PROCEDURE `kiosk_pro`.`setTimeAdjustForNext`(tokenno int,cdate date)
/*LANGUAGE SQL
| [NOT] DETERMINISTIC
| { CONTAINS SQL | NO SQL | READS SQL DATA | MODIFIES SQL DATA }
| SQL SECURITY { DEFINER | INVOKER }
| COMMENT 'string'*/
BEGIN
declare lo_SNO int;
declare lo_TokenNo int;
DECLARE done INT DEFAULT FALSE ;
Declare mycur Cursor for( select SNO from kiosk_token_generation where TokenDate=cdate and TokenNo >= tokenno order by TokenNo );
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = TRUE;
open mycur;
time_loop :LOOP
FETCH mycur into lo_SNO;
if done then
close mycur;
leave time_loop;
end if;
select lo_SNO ;
end loop time_loop;
END$$
实际上我的表在 SNO 列中有 3 条记录 1,2,3 和 1,2,3 在
TokenNo 列,我通过传递date
='2014-02-22' 和tokenno=1 调用上面的存储过程,但是它返回了3 次1 值。
我在哪里做错了?
【问题讨论】:
标签: mysql stored-procedures cursor