游标主要用于交互式应用,获取语句检索出来的结果集,在存储了游标之后应用程序可以根据需要滚动或者浏览其中的数据
使用游标的几个步骤
1, 声明定义 定义要使用的select 语句
2,打开游标
首先创建一个存储过程函数并定义游标
mysql> delimiter //
mysql> create procedure test()
-> begin
-> declare num cursor
-> for
-> select count goods_name from test_goods;
-> open num;//
-> close num;
-> end //
Query OK, 0 rows affected (0.02 sec)
按照上面的步骤 就是 声明游标 定义使用select 语句 打开游标 和关闭游标 但对检索出来的数据什么都没有做
下面 我们就要使用 游标数据 用fetch语句来分别访问它的每一行
例如
mysql> delimiter //
mysql> create procedure test3()
-> begin
-> declare a int;
-> declare num cursor for select goods_id from test_goods;
-> open num;
-> fetch num into a;
-> select a;
-> close num;
-> end //
Query OK, 0 rows affected (0.00 sec)
运行结果
mysql> call test3();//
+------+
| a |
+------+
| 1 |
+------+
1 row in set (0.00 sec)
Query OK, 0 rows affected (0.00 sec)
你会发现 就一个结果出来
因为 fetch 就运行了一次 指针还处于第一个结果上面 如果我们在 运行一次 fetch 的话 会怎么样
删除 过程
mysql> drop procedure test