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; 展开
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; 展开
1个回答
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
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;它认为是不相等的,为什么?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询