mysql中存储过程和游标调用问题

mysql中的存储过程和游标,不知道哪里错了,求帮忙!createorreplaceprocedureproc_updateDistbegindeclaredistIdI... mysql中的存储过程和游标,不知道哪里错了,求帮忙!create or replace procedure proc_updateDist
begin
declare distId INT;
declare distName VARCHAR(50);
declare distY,distX VARCHAR(20);
declare rs_cursor cursor for select id,name,y,x from nets_test_district;
open rs_cursor;
cursor_loop:loop
fetch rs_cursor into distId,distName,distY,distX;
update nets_test_area set y=distY,x=distX where name=distName;
update nets_test_environment set id=(select id from nets_test_area where name=distName);
end loop cursor_loop;
close rs_cursor;
end;
展开
 我来答
匿名用户
2013-04-04
展开全部
不知道你 什么版本的 mysql

1、
我使用的 mysql, 好像没有 create or replace procedure 这样的语法。
只能 create procedure
可能是我的 mysql 版本太低了吧...

2、
MySQL 存储过程名字后面的“()”是必须的,即使没有一个参数,也需要“()”

这个不知道是不是也是我mysql 版本太低的问题。

create or replace procedure proc_updateDist

修改为
create procedure proc_updateDist ()

3、游标部分, 缺少了 DECLARE CONTINUE HANDLER
以及 判断什么时候退出循环的语句。

http://wenku.baidu.com/view/b0f2944f767f5acfa1c7cde3.html
追问
distId,distName,distY,distX都有值,但是循环修改nets_test_area表中的值没有循环完,而且我发现nets_test_area和nets_test_district表中name相等的记录,这里面也查不出来,select ta.id into newId from nets_test_area ta where ta.name=distName;它认为是不相等的,为什么?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式