[SOLVED] PL/MySQL - Duplicated last row
-
edit I found the source of the problem. I forgot to close the cursor; Hello. My second SP is printing the last row twice and I don't know what to do about it. The second one is calling the first.
delimiter //
drop procedure if exists sp_overdue_sales //
create procedure sp_overdue_sales()
begin
drop temporary table if exists overdue_sales_tmp;
create temporary table overdue_sales_tmp as select
sales_id, customer_id, sale_date, quantity, sale_value
from sales where sale_status = 'A' limit 10;
end;
//delimiter //
drop procedure if exists sp_issue_invoice //
create procedure sp_issue_invoice()
begin
declare var_sales_id int;
declare last_sale int default 0;declare sales_csr cursor for
select sales_id from overdue_sales_tmp;declare continue handler for not found set last_sale = 1;
open sales_csr;
sales_repeat: repeat
if last_sale then
leave sales_repeat;
end if;
fetch sales_csr into var_sales_id;
select var_sales_id;
until last_sale end repeat;
end;
//| var_sales_id |
+--------------+
| 10 |
+--------------+
1 row in set (0.00 sec)+--------------+
| var_sales_id |
+--------------+
| 10 |
+--------------+
1 row in set (0.00 sec)Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> show warnings;
+-------+------+-----------------------------------------------------+
| Level | Code | Message |
+-------+------+-----------------------------------------------------+
| Error | 1329 | No data - zero rows fetched, selected, or processed |
+-------+------+-----------------------------------------------------+