Mysql 处理错误号1329和1904(未处理数据和未知线程)

Mysql 处理错误号1329和1904(未处理数据和未知线程),mysql,Mysql,我有一个过程可以杀死事件调度器中的休眠线程。 它工作正常,但有时会发出警告 与未处理行、未获取数据、获取零行(错误号1329)一样,有时也会显示未知 线程(错误号1904)。即使我在代码中处理它。对于1904年的错误 游标获取所有ID,同时处理某些线程可能丢失,因此它会抛出该错误。 我正在使用MYSQL数据库 请建议可能的代码修复,因为它正在记录到日志文件中。 谢谢 CREATE PROCEDURE `kill_thread`() BEGIN DECLARE no_more_rows BOOL

我有一个过程可以杀死事件调度器中的休眠线程。 它工作正常,但有时会发出警告 与未处理行、未获取数据、获取零行(错误号1329)一样,有时也会显示未知 线程(错误号1904)。即使我在代码中处理它。对于1904年的错误 游标获取所有ID,同时处理某些线程可能丢失,因此它会抛出该错误。 我正在使用MYSQL数据库

请建议可能的代码修复,因为它正在记录到日志文件中。 谢谢

CREATE  PROCEDURE `kill_thread`()
BEGIN
DECLARE no_more_rows BOOLEAN;
DECLARE loop_cntr INT DEFAULT 0;
DECLARE num_rows INT DEFAULT 0;
DECLARE XID bigint(4);  
DECLARE Sleep_Cur CURSOR FOR
SELECT ID
  FROM information_schema.PROCESSLIST P
WHERE P.COMMAND='Sleep' AND P.TIME >20;

DECLARE CONTINUE HANDLER FOR NOT FOUND
SET no_more_rows = TRUE;

OPEN Sleep_Cur;
select FOUND_ROWS() into num_rows;
the_loop: LOOP

FETCH Sleep_Cur
INTO XID;

IF no_more_rows THEN
    CLOSE Sleep_Cur;
    LEAVE the_loop;
END IF;

SET @slp_sql= CONCAT("KILL ",XID);
PREPARE stmt FROM @slp_sql;
EXECUTE stmt;

DEALLOCATE PREPARE stmt;
SET loop_cntr = loop_cntr + 1;
END LOOP the_loop;

END