游标

   游标就是结果集,可以把游标当作集合的指针或者java中的引用。一旦打开游标就是执行了查询,打开游标必须要关闭,否则会占用内存资源。游标必须在存储过程中创建和使用。用fetch...into...来迭代游标。使用repeat .....until 条件 end repeat做循环;


创建

declare  xx cursor  for select * from user;

可以把游标当做结果集的引用,所以这里用declare声明变量,而不是create。这里没有执行select语句,仅仅是定义。


打开游标

open cursor_name;

打开游标时,会执行select语句


关闭游标

close cursor_name;

关闭游标,会释放游标占用的内存资源,所以打开游标后一定要关闭。如果不关闭,默认存储过程结束时,释放内存资源。


完整示例:

这里要注意,局部变量要在任意游标或句柄之前定义,而句柄必须在游标之后定义。

本例中,游标user_cursor是user表中id的集合,通过repeat遍历游标,并将id赋值给局部变量,使用完后关闭游标。

mysql 游标_局部变量