mysql游标循环的使用

 

CREATE PROCEDURE `test`.`new_procedure` ()
BEGIN

DECLARE done INT DEFAULT FALSE;
  -- 需要定义接收游标数据的变量
  DECLARE a CHAR(16);
  -- 游标
  DECLARE cur CURSOR FOR SELECT i FROM test.t;
  -- 遍历数据结束标志
  DECLARE done INT DEFAULT FALSE;
  -- 将结束标志绑定到游标
  DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
  -- 打开游标
  OPEN cur1;

  -- 开始循环
  read_loop: LOOP
    -- 提取游标里的数据,这里只有一个,多个的话也一样;
    FETCH cur INTO a;
    -- 声明结束的时候
    IF done THEN
      LEAVE read_loop;
    END IF;
    -- 这里做你想做的循环的事件

    INSERT INTO test.t VALUES (a);

  END LOOP;
  -- 关闭游标
  CLOSE cur1;

END

 

时间: 2024-09-11 20:20:07

mysql游标循环的使用的相关文章

Mysql存储过程循环内嵌套使用游标示例代码_Mysql

BEGIN -- 声明变量 DECLARE v_addtime_begin varchar(13); DECLARE v_addtime_end varchar(13); DECLARE v_borrow_id int; DECLARE v_count int; DECLARE s1 int; /** 声明游标,并将查询结果存到游标中 **/ DECLARE c_borrow CURSOR FOR SELECT ID from rocky_borrow WHERE BORROWTYPE = 2

mysql存储过程循环只执行一次

问题描述 mysql存储过程循环只执行一次 下面是存储过程主体,问题是无论怎么跑,貌似里面的两个循环都只会执行一次.好困惑.请sql大神解救 BEGINDECLARE stop_flag INT DEFAULT 0;DECLARE captain VARCHAR(500);DECLARE captain1 VARCHAR(500);DECLARE captain2 VARCHAR(500);declare captainstaffno1 varchar(32);declare captainst

MySql游标的使用实例_Mysql

mysql游标使用的整个过程为: 1.创建游标 复制代码 代码如下: DECLARE calc_bonus CURSOR FOR SELECT id, salary, commission FROM employees; 2.打开游标 复制代码 代码如下: OPEN calc_bonus; 3.使用游标 复制代码 代码如下: FETCH calc_bonus INTO re_id, re_salary, re_comm; 4.关闭游标 复制代码 代码如下: CLOSE calc_bonus; 实

sqlserver 存储过程-关于SQL存储过程使用游标循环的问题

问题描述 关于SQL存储过程使用游标循环的问题 现有三张表a.b.c,循环表a,把a 表的某个字段作为b表的查询条件,如果b表查出的数据满足某个条件,就往c表里插一条数据,怎么写个存储过程?

SQLServer用t-sql命令批量删除数据库中指定表(游标循环删除)_MsSql

当我们需要批量删除数据库中的表时,对于单个删除一些表是否感到烦躁,厌倦,干脆写个脚本用得了. 本脚本使用游标循环删除,对于数量比较小,用游标暂不会造成恶劣影响. 复制代码 代码如下: DECLARE @tablename VARCHAR(30),@sql VARCHAR(500)DECLARE cur_delete_table CURSOR READ_ONLY FORWARD_ONLY FORSELECT name FROM sysobjects WHERE name LIKE 'PUB%' A

Sql server存储过程中常见游标循环用法

原文:Sql server存储过程中常见游标循环用法 用游标,和WHILE可以遍历您的查询中的每一条记录并将要求的字段传给变量进行相应的处理 DECLARE @A1 VARCHAR(10), @A2 VARCHAR(10), @A3 INT DECLARE YOUCURNAME CURSOR FOR SELECT A1,A2,A3 FROM YOUTABLENAME OPEN YOUCURNAME fetch next from youcurname into @a1,@a2,@a3 while

sql 游标循环遍历

原文:sql 游标循环遍历   写存储过程的时候碰到一个需要对数据进行遍历循环操作的问题,最后通过游标解决了,感觉很适用. 1 declare @level varchar(100) 2 declare @uid varchar(100) 3 declare cur cursor--定义一个游标 4 read_only 5 for select egg_code.user_id,egg_prize_level 6 from egg_code inner join egg_prize on egg

Sql存储过程游标循环的用法及sql如何使用cursor写一个简单的循环_MsSql

用游标,和WHILE可以遍历您的查询中的每一条记录并将要求的字段传给变量进行相应的处理 ================== DECLARE @A1 VARCHAR(10), @A2 VARCHAR(10), @A3 INT DECLARE CURSOR YOUCURNAME FOR SELECT A1,A2,A3 FROM YOUTABLENAME OPEN YOUCURNAME fetch next from youcurname into @a1,@a2,@a3 while @@fetch

SQLServer用t-sql命令批量删除数据库中指定表(游标循环删除)

当我们需要批量删除数据库中的表时,对于单个删除一些表是否感到烦躁,厌倦,干脆写个脚本用得了. 本脚本使用游标循环删除,对于数量比较小,用游标暂不会造成恶劣影响. 复制代码 代码如下:DECLARE @tablename VARCHAR(30),@sql VARCHAR(500)DECLARE cur_delete_table CURSOR READ_ONLY FORWARD_ONLY FORSELECT name FROM sysobjects WHERE name LIKE 'PUB%' AN