DROP PROCEDURE IF EXISTS mycursor;
CREATE PROCEDURE mycursor()
BEGIN
DECLARE v_done INT DEFAULT 0;
DECLARE v_a INT(6);
DECLARE v_b VARCHAR(20);
DECLARE cur_bak CURSOR FOR SELECT id, name FROM info;
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET v_done = 1;
OPEN cur_bak;
REPEAT
FETCH cur_bak INTO v_a, v_b;
IF NOT v_done THEN
INSERT INTO infobak(id, name) VALUES (v_a, v_b);
END IF;
UNTIL v_done
END REPEAT;
CLOSE cur_bak;
END;
CALL mycursor;
本文详细介绍了一种在MySQL中使用存储过程与游标的方法,通过一个具体示例展示了如何从一个表中读取数据,并将这些数据插入到另一个表中。此过程包括声明变量、创建游标、设置继续处理器、打开游标、重复提取数据直至完成。
1069

被折叠的 条评论
为什么被折叠?



