How to check if MySQL cursor is empty

You can add a continue handler to your cursor.
declare v_emailid bigint(20);
DECLARE done INT DEFAULT FALSE;
DECLARE cursor_email CURSOR FOR select e.emailid from email e WHERE
        e.status='pending';
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;

OPEN cursor_email;
read_loop: LOOP
FETCH cursor_email INTO v_emailid;
    IF done THEN
      LEAVE read_loop;
    END IF;
UPDATE email e 
SET 
    e.status = 'new'
WHERE
    e.emailid = v_emailid;
END LOOP;
close cursor_email;

Popular posts from this blog

How to delete / clear queue of PowerMTA