mysql 使用游标

这是我使用mysql游标写的一个存储过程。当然只是初识mysql 的游标

DELIMITER $$

USE `0801`$$

DROP PROCEDURE IF EXISTS `SB_MOLECULE_SPECIES_URL`$$

CREATE DEFINER=`scommerce`@`%` PROCEDURE `SB_MOLECULE_SPECIES_URL`()

BEGIN
#声明变量并附默认值;
DECLARE siteId CHAR(32) DEFAULT 'e61244a8e61244a8f8108745f8108745';
DECLARE createBy CHAR(32) DEFAULT 'f1ecf7eace1511e1968100242cbeedaa';
DECLARE pageId CHAR(32) DEFAULT '7bf8ecf331f111e2a063001e6745fd58';

DECLARE sourceName VARCHAR(255) DEFAULT '';
DECLARE targetName VARCHAR(255) DEFAULT '';
DECLARE done INT DEFAULT 0; 
#声明游标
DECLARE mycur CURSOR FOR SELECT source_name ,target_name FROM sc_coj_edge WHERE conjunction_id='870b05eb5e8811e39c86f23c9169b4e1' LIMIT 1;
#如果没有找到数据(有的人此处不写not found 会写 SQLSTATE '02000')则将变量done的值置为1;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;
#open  打开游标
OPEN mycur;
#开始 循环游标
emp_loop:LOOP
# FETCH 获取游标当前指针的记录,并传给指定变量列表,注意变量数必须与MySQL游标返回的字段数一致,要获得多行数据,使用循环语句去执行FETCH
FETCH mycur INTO sourceName,targetName;
SELECT done;

#如果变量done = 1 则跳出循环
IF done = 1 THEN
LEAVE emp_loop;
ELSE
#此处根据需要进行相应的表操作;

END IF;
#结束循环
END LOOP emp_loop;
#关闭游标
CLOSE mycur;
    END$$


DELIMITER ;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL,可以使用游标来传递参数。引用的示例演示了如何创建一个存储过程test_cursor,其包含一个in参数param和一个out参数result,并使用游标cur_test来查询users数据表的记录。 首先,我们创建了一个名为test_cursor的存储过程,其定义了参数param和result,并声明了一些局部变量。然后,我们创建了一个名为cur_test的游标,用于查询users数据表的user_name和user_pass字段。 在游标的定义,我们还声明了一个continue handler,用于在没有更多行可供读取时设置done变量为1。 接下来,我们使用if语句来判断是否有传入的参数param。如果有参数传入,则通过查询users数据表的相应记录将结果赋给result变量。否则,我们打开游标cur_test,并使用repeat循环通过游标逐行获取name和pass的值,并将结果与之前的结果使用concat_ws函数连接在一起。 最后,我们关闭游标cur_test,并结束存储过程。 要调用存储过程并传递参数,可以使用CALL语句,如引用所示。在调用过程后,可以通过查询变量@test来获取存储过程返回的结果。 所以,使用游标MySQL传递参数的方法是创建一个存储过程,声明游标和参数,并在存储过程使用游标来处理数据。然后通过调用存储过程并传递参数来获取结果。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [MySQL(85)MySQL游标(Cursor)的定义及使用](https://blog.csdn.net/m0_54144956/article/details/131294159)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值