第一次写存储过程发现了一个游标最后一条纪录会重复的问题。
如:我定义了一个游标,确定只有2条纪录然而用fetch取数据的时候取出3条纪录,这样就会导致多循环一次的问题。
我是这样写的
loop_name loop:
if fetchOk then
leave loop_name;
else
fetch cursor_name into accessdate;
select accessdate;#这里会出现3条纪录,最后一条纪录重复。
#code
end if;
end loop_name ;
找了好久没找到原因,后来试着把fetch语句写在判断游标结束语前面问题就消失了
loop_name loop:
fetch statistic_cursor into accessdate;
if fetchOk then
leave statistic_loop;
else
select accessdate;#结果正常2条数据。
#code
end if;
end loop_name;
总结:先取值,再判断。