游标的定义问题
create procedure p4()
begin
declare row_cat_id int;
declare row_cat_name varchar(90);
declare row_parent_id int;
declare cnt int default 0;//定义总行数
declare i int default 0;
declare getcategory cursor for select cat_id,cat_name,parent_id from category;
select count(*) into cnt from category;//计算得出的总行数查询后赋给cnt变量
open getcategory;
repeat
set i:=i+1;//循环操作
fetch getcategory into row_cat_id,row_cat_name,row_parent_id;
select row_cat_id,row_cat_name,row_parent_id;
until i>=cnt end repeat; //循环结束
close getcategory;
end$
call p4()$
mysql的定义必须在前面,对游标的定义也必须在前面 ,虽然在前面,但只是定义,在open的时候才真正起作用,也就去进行查询定义时的语句,这个语句可以有声明以后定义的内容。