Mysql5.7 存储过程 遍历select结果集并进行其他操作
#创建存储过程
#1.定义该存储过程代码结束符号:DELIMITER 定好结束符为"$$"
DELIMITER $$
CREATE PROCEDURE insertData ()
BEGIN
DECLARE isFlag INT DEFAULT TRUE;
DECLARE cId BIGINT DEFAULT 0;
DECLARE customer CURSOR FOR SELECT id cId FROM tableName;#声明游标,语法:DECLARE 游标名称 CURSOR FOR 游标值
DECLARE CONTINUE HANDLER FOR NOT FOUND SET s = FALSE;#游标中的内容循环执行完后将 isFlag 设置为flase
OPEN customer;#打开先前声明的游标。
FETCH customer INTO cId;#取游标中的值,语法:FETCH cursor_name INTO var_name [, var_name] ...
WHILE isFlag IS TRUE DO
INSERT INTO tableName (id,cId) VALUE(100,cId);#业务需要执行相应代码
FETCH customer INTO cId;#取游标中的值
END WHILE;
CLOSE customer;#关闭游标
END$$#创建存储过程结束
#执行存储过程
CALL insertData ();
#删除存储过程
DROP PROCEDURE IF EXISTS insertData ;