- 积分
- 47
- UID
- 15887
- 阅读权限
- 10
- 注册时间
- 2014-6-17
- 精华
- 在线时间
- 小时
- 最后登录
- 1970-1-1
- 职业
- 1
|
求高手解答,我的以下两个存储过程都是
将表goods中的字段gid,num,name的所有值取出,
然后逐条分别赋值给row_gid,row_num,row_name,
而且每次赋值后就将这三个结果输出一次。
可是问题是过程16为何不能够成功,
逻辑上并没有错误啊?
请先看我的goods表
+------+------+------+
| gid | name | num |
+------+------+------+
| 1 | cat | 26 |
| 2 | dog | 57 |
| 3 | pig | 16 |
+------+------+------+
goods表结构
+-------+------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+------------+------+-----+---------+-------+
| gid | int(11) | YES | | NULL | |
| name | varchar(8) | YES | | NULL | |
| num | int(11) | YES | | NULL | |
+-------+------------+------+-----+---------+-------+
存储过程15:
create procedure p15()
begin
declare row_gid int;
declare row_num int;
declare row_name varchar(20);
declare you int default 1;
declare getgoods cursor for select gid,num,name from goods;
declare continue handler for not found set you=0;
open getgoods;
repeat
fetch getgoods into row_gid,row_num,row_name;
select row_num,row_name,row_gid;
until you=0 end repeat;
close getgoods;
end//
存储过程16:
create procedure p16()
begin
declare row_gid int;
declare row_num int;
declare row_name varchar(20);
declare you int default 0;
select count(*) into you from goods;
declare getgoods cursor for select gid,num,name from goods;
open getgoods;
repeat
fetch getgoods into row_gid,row_num,row_name;
select row_num,row_name,row_gid;
set you=you-1;
until you=0 end repeat;
close getgoods;
end//
|
|