纯粹是业务需要,学习记录一下使用游标的过程;
我们先创建一张表;
假设att_test是我们的表名称,其中有两个字段,我插入了一部分数据;
我们学习下,如何在遍历每一行的条件下,删除当前行,并插入新的行;
-- 测试游标
DELIMITER $$
DROP PROCEDURE IF EXISTS repair_leader_permissions $$
CREATE PROCEDURE repair_leader_permissions()
BEGIN
DECLARE result varchar(128) ;#循环中当前变量1
DECLARE result1 varchar(128);#循环中当前变量2
DECLARE _no int;
DECLARE cur_1 CURSOR FOR SELECT id,value FROM att_test; #游标初始化(多字段)!!!
DECLARE CONTINUE HANDLER FOR NOT FOUND SET _no=1; #当数据预览到最后一条时,启动更新
SET _no=0; #初始化
OPEN cur_1; #使用游标
REPEAT
fetch cur_1 into result,result1; #多字段读取游标!!!字段顺序如上哦
IF NOT _no THEN
#清理数据
DELETE FROM att_test WHERE id =result;
#插入数据
INSERT att_test
(SELECT result,result1);
#过程输出
SELECT result,result1;
END IF;
UNTIL _no=1 END REPEAT;
CLOSE cur_1; #
END$$
DELIMITER ;
call repair_leader_permissions(); -- 调用
其实,这里是我个人简单的记录。有问题可以评论,我们共同进步
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)