MySQL在mysql5之后提供了对游标的支持,我们有时会在检索出来的结果中前进或后退一行或者多行,这时就需要用到游标。
另外游标只能用于存储过程和函数。
1.创建游标
create PROCEDURE process()
BEGIN
DECLARE pro_cur CURSOR --
FOR SELECT * FROM message; -- 声明游标
OPEN pro_cur; -- 打开游标
CLOSE pro_cur; -- 关闭游标
END
2.举个例子,将一张表中的某个字段的值循环插入领一张表中
DROP PROCEDURE IF EXISTS process;
CREATE PROCEDURE process ()
BEGIN
DECLARE num INT DEFAULT 0;
DECLARE m VARCHAR(100);
DECLARE done boolean DEFAULT 0;
DECLARE pro_cur CURSOR --
FOR SELECT message_type FROM message;
-- 声明游标
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1; -- 没有数据返回将 done的值设为1
OPEN pro_cur;
-- 打开游标
REPEAT -- 使用repeat循环
FETCH pro_cur INTO m;
INSERT into test_data SET String=m;
set num=num+1;
UNTIL done -- 为真是结束循环
END
REPEAT
;
CLOSE pro_cur;
-- 关闭游标
END
CALL process();
MySQL游标
最新推荐文章于 2022-01-19 23:28:31 发布