当前位置:Gxlcms > 数据库问题 > Mysql 游标在数据库当中引用

Mysql 游标在数据库当中引用

时间:2021-07-01 10:21:17 帮助过:9人阅读

DROP PROCEDURE IF EXIEST re_name() 2 CREATE PROCEDURE re_name() 3 begin 4 DECLARE s_did int(11); 5 DECLARE s_dname VARCHAR(80); 6 DECLARE stop int DEFAULT 0; 7 -- DECLARE fname VARCHAR(80); 8 DECLARE cur cursor for select did,dname from db_fittings where dQuality = 原厂 AND dname NOT LIKE %原厂% ; 9 declare CONTINUE HANDLER FOR SQLSTATE 02000 SET stop = null; 10 OPEN cur; 11 FETCH cur INTO s_did,s_dname; 12 WHILE ( stop is not null ) DO 13 update `db_fittings` set `dname` = CONCAT(s_dname,-原厂) WHERE `did` = s_did; 14 FETCH cur INTO s_did,s_dname; 15 END WHILE; 16 CLOSE cur; 17 end

  以下解释上面代码作为记录:

  首行如果存在就删除存储过程re_name();

  创建存储过程re_name();

  声明局部变量;

  声明游标;游标的使用和变量相同需要先声明:DECLARE cur cursor for select did,dname from db_fittings where dQuality = ‘原厂‘ AND dname NOT LIKE ‘%原厂%‘ ;

  以下申明在查询出现异常是停止跳出循环:declare CONTINUE HANDLER FOR SQLSTATE ‘02000‘ SET stop = null;

  在使用右边之前需要打开游标:open cur

  使用FETCH 讲查询出来的结果赋予临时变量:FETCH cur INTO s_did,s_dname

  然后再处理使用WHILE DO 循环处理游标查询结果

  关闭游标。

  结算存储过程。

 

  在书写过程中遇到的问题

  原数据库字段长度32 不够长会导致出现 data too long for column ‘dname‘ at row 1 错误,再讲长度32改为60之后程序正常运行,顺利改名

Mysql 游标在数据库当中引用

标签:div   后台   工程师   and   游标   state   存在   引用   结果   

人气教程排行