存储过程抛出声明变量异常,求解决?

myzksky 2015-11-09 04:49:31
DROP PROCEDURE IF EXISTS ProA()
begin
#创建临时表
DROP TEMPORARY TABLE IF EXISTS table_a
CREATE TEMPORARY TABLE table_temp_b(
`id` int(19) NOT NULL,
`name` varchar(50) DEFAULT NULL
)ENGINE=MyISAM DEFAULT CHARSET=utf8;
#联合查询c,d两表的数据插入数据到临时表b
insert into table_temp_b(id, name) select id,name from c,d where c.id = d.id;
#使用游标查询临时表
DECLARE pCursor CURSOR FOR SELECT id, `name` FROM table_temp_b;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;
OPEN pCursor;
pCurlorLoop : LOOP
FETCH pCursor INTO id, type;
SELECT id;
IF done = 1 THEN
LEAVE pCurlorLoop;
END IF;
END LOOP pCurlorLoop;
CLOSE pCursor;
end
总是提示DECLARE游标报错,即使是声明普通变量也会报错,怎么搞,困了我很久了?
...全文
129 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
ayzen1988 2015-11-10
  • 打赏
  • 举报
回复
done、id、type在使用之前都没有定义变量。
LongRui888 2015-11-10
  • 打赏
  • 举报
回复
DROP PROCEDURE IF EXISTS ProA() begin declare done int; declare id int; declare type varchar(50); #创建临时表 DROP TEMPORARY TABLE IF EXISTS table_a CREATE TEMPORARY TABLE table_temp_b( `id` int(19) NOT NULL, `name` varchar(50) DEFAULT NULL )ENGINE=MyISAM DEFAULT CHARSET=utf8; #联合查询c,d两表的数据插入数据到临时表b insert into table_temp_b(id, name) select id,name from c,d where c.id = d.id; #使用游标查询临时表 DECLARE pCursor CURSOR FOR SELECT id, `name` FROM table_temp_b; DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1; OPEN pCursor; pCurlorLoop : LOOP FETCH pCursor INTO id, type; SELECT id; IF done = 1 THEN LEAVE pCurlorLoop; END IF; END LOOP pCurlorLoop; CLOSE pCursor; end

56,687

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧