国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

linux - mysql 存儲過程問題調(diào)用時(shí)候報(bào)錯(cuò)
滿天的星座
滿天的星座 2017-05-31 10:37:32
0
2
942

請幫忙看一下為什么會(huì)報(bào)錯(cuò),小弟首次編寫這種類型的存儲過程:
delimiter $$
create procedure mydb()
begin
declare dbname varchar(50);
declare stop int default 0;
declare cur cursor for (select name from name); //name表中存放的是數(shù)據(jù)庫的名稱
declare CONTINUE HANDLER FOR SQLSTATE '02000' SET stop = null;
open cur;
fetch cur into dbname; //遍歷數(shù)據(jù)庫的名稱
while ( stop is not null) do

begin
declare name varchar(200);
declare stop1 int default 0;
declare cur1  cursor for (select prounit_name from dbname.prounit);  //獲取prounit表中prounit_name字段內(nèi)容
declare CONTINUE HANDLER FOR SQLSTATE '02000' SET stop1 = null;
open cur1;
fetch cur1 into name;
while ( stop1 is not null) do
    update prounit set name='abc';
    fetch cur1 into name;
end while;
close cur1;
end ;

fetch cur into dbname;
end while;
close cur;
end ;
delimiter $$

在執(zhí)行存儲過程error:ERROR 1146 (42S02): Table 'dbname.prounit' doesn't exist

why?????

滿天的星座
滿天的星座

全部回復(fù)(2)
淡淡煙草味

提示很明顯,表不存在
declare dbname varchar(50);名字覆蓋了?

迷茫

說幾個(gè)語法問題吧.

  1. while ( stop is not null) do中的stop應(yīng)該游標(biāo)dbname才對,對游標(biāo)進(jìn)行判斷.不然對stop沒有引用過

  2. 最后一個(gè)end;,前面你定義了delimiter $$`以`$$為結(jié)束符,應(yīng)該改為end$$,最后不要忘了結(jié)尾改成delimiter ;

最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板