Mysql 1329无数据-获取、选择或处理的行数为零

Mysql 1329无数据-获取、选择或处理的行数为零,mysql,stored-procedures,Mysql,Stored Procedures,我已多次更改此存储过程,但仍不断收到相同的错误。我知道我正在返回行,因为我单独测试了光标选择。我在这个网站上读过其他类似的问题,但我似乎没有相同的解决方法 DECLARE iDone INTEGER(10) DEFAULT 0; DECLARE userID INTEGER(10); DECLARE creditRemaining INTEGER(10); DECLARE column_cur CURSOR FOR SELECT `userID`, `creditRemaining

我已多次更改此存储过程,但仍不断收到相同的错误。我知道我正在返回行,因为我单独测试了光标选择。我在这个网站上读过其他类似的问题,但我似乎没有相同的解决方法

DECLARE iDone INTEGER(10) DEFAULT 0; 
DECLARE userID INTEGER(10);
DECLARE creditRemaining INTEGER(10);

DECLARE column_cur CURSOR FOR
     SELECT `userID`, `creditRemaining` FROM `access` 
     WHERE (`dateExpire`>=now() OR `isRenewed`=1) and `descriptionShort`='Subscription';

DECLARE CONTINUE HANDLER FOR NOT FOUND SET iDone=1;

SET userID = 0;
SET creditRemaining = 0;
OPEN column_cur;
LOOP1: LOOP   

   FETCH column_cur INTO userID, creditRemaining;
   IF iDone = 1
       THEN
          LEAVE LOOP1;
   END IF;
   -- SELECT userID, creditRemaining;
   UPDATE `users` SET `saveCount`=creditRemaining, `searchCount`=6000 WHERE `ID`=userID;

END LOOP LOOP1;
CLOSE column_cur;

我认为这是more的重复,除了您已经声明了一个处理程序之外。在另一个
错误1329
问题中,@DanJGer指出了文档中的一个注释:

在MySQL 5.6.3之前,如果生成警告或错误的语句导致调用条件处理程序,则处理程序可能不会清除诊断区域。这可能会导致处理程序未被调用。下面的讨论演示了这个问题,并提供了一个解决方法


这可能就是你遇到的问题

从未解决过具体的问题,但以下问题是我尝试执行的过程:更新
access
a加入用户u ON u.ID=a.userID SET u.saveCount=a.creditRemaining,u.searchCount=6000,其中(a.
dateExpire
=now()或a.
isRenewed
=1)和a.
说明短
='Subscription';