【SQL 语言】 游标

Metadata

title: 【SQL 语言】 游标
date: 2022-12-20 16:05
tags:
  - 行动阶段/完成
  - 主题场景/数据存储
  - 笔记空间/KnowladgeSpace/ProgramSpace/BasicsSpace
  - 细化主题/数据存储/SQL_语言
categories:
  - 数据存储
keywords:
  - 数据存储
description: 游标主要用于交互式应用,其中用户需要对数据集中的任意行进行浏览和修改。

在存储过程中使用游标可以对一个结果集进行移动遍历。

游标主要用于交互式应用,其中用户需要对数据集中的任意行进行浏览和修改。

使用游标的四个步骤:

  • 声明游标,这个过程没有实际检索出数据;
  • 打开游标;
  • 取出数据;
  • 关闭游标;
delimiter //
create procedure myprocedure(out ret int)
    begin
        declare done boolean default 0;

        declare mycursor cursor for
        select col1 from mytable;
        # 定义了一个 continue handler,当 sqlstate '02000' 这个条件出现时,会执行 set done = 1
        declare continue handler for sqlstate '02000' set done = 1;

        open mycursor;

        repeat
            fetch mycursor into ret;
            select ret;
        until done end repeat;

        close mycursor;
    end //
 delimiter ;