写了一段sql语句如下:DECLAREpro_namevarchar(64);DECLAREsqlcmdvarchar(255);DECLAREcur_okboolDEFAULTfalse;DECLAREcurCURSORforselect`name`frommysql.procwheredb='mydate'and`t...
写了一段sql 语句如下:
DECLARE pro_name varchar(64);
DECLARE sqlcmd varchar(255);
DECLARE cur_ok bool DEFAULT false;
DECLARE cur CURSOR for select `name` from mysql.proc where db = 'mydate' and `type` = 'PROCEDURE';
DECLARE CONTINUE HANDLER FOR NOT FOUND SET cur_ok=true;
open cur;
REPEAT
FETCH cur INTO pro_name;
IF NOT cur_ok THEN
set @sqlcmd=CONCAT('drop PROCEDURE ',' ',pro_name);
PREPARE stmt FROM @sqlcmd;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
END IF;
UNTIL cur_ok END REPEAT;
close cur;
结果直接报错,说DECLARE 语句有错,后来上网查了下,declare必须包含在begin..end之间,但是在两头加上begin end 还是报同样错误,又他妈的说begin..end必须包含在programs当中,也就是存储过程函数什么的,但是存储过程不能删除存储过程啊,函数里面又不能用游标。。大侠们谁有高见。。。。跪求啊。。。。
展开