Ich bin durch ein Cursor Ergebnis in einer MYSQL gespeicherten Prozedur durchlaufen. Ich stehe vor einem Problem, dass die Schleife immer zweimal durch den letzten Datensatz läuft. Hier ist mein Code,MYSQL Cursorschleife, läuft eine Extrarunde, warum?
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;
Mittel, wenn ich 3 Datensätze haben, Schleife 4 mal läuft, wenn es 10 Datensätze Schleife läuft 11mal usw. Jede Idee, was geschieht hier?
Dies kann helfen -> [Cursor zweimal letzte Zeile Iterieren] (http://forums.mysql.com/read.php?102,155063,155063) – Kermit
Ja, das hat wirklich funktioniert. Danke – Thanu
der Link fehlt jetzt – ejectamenta