Estoy recorriendo un resultado de cursor en un procedimiento almacenado MYSQL. Me enfrento a un problema que es que el ciclo siempre se ejecuta a fondo el último registro dos veces. Aquí está mi código,Cursor de cursor MYSQL, ejecuta una ronda extra, ¿por qué?
BEGIN
DECLARE not_found_creadit INT DEFAULT 0;
DECLARE cur_credit CURSOR FOR
SELECT customer_id, amount, status, user_type, employee, note FROM credit WHERE status = 'approved' AND customer_id = int_cust_id;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET not_found_creadit = 1;
OPEN cur_credit;
SET not_found_creadit = 0;
credit_loop : LOOP
IF not_found_creadit THEN
CLOSE cur_credit;
LEAVE credit_loop;
END IF;
FETCH cur_credit INTO vc_customer, dec_amount, vc_status, vc_user_type, vc_emp, vc_note;
SELECT vc_customer, dec_amount, vc_status, vc_user_type, vc_emp, vc_note;
......
......
END LOOP;
END;
significa que si tengo 3 registros, bucle se ejecuta 4 veces, si se trata de bucle de 10 registros se ejecuta 11 veces, etc. Alguna idea de qué está sucediendo aquí?
Esto puede ayudar -> [cursor de la iteración dos veces en última fila] (http://forums.mysql.com/read.php?102,155063,155063) – Kermit
Sí, eso realmente funcionó. Gracias – Thanu
el enlace ahora está perdido – ejectamenta