Я перебираю результат набора курсора в хранимой процедуре MYSQL. Я столкнулся с проблемой, которая заключается в том, что цикл всегда проверяет последнюю запись дважды. Вот мой код,
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;
Означает, что если у меня есть 3 записи, цикл выполняется 4 раза, если это 10 циклов записи, 11 раз и т.д. Любая идея, что происходит здесь?