一个例子说明mysql 光标在存储过程中的使用

本文介绍了一个使用存储过程及游标从数据库中选取特定类型书籍信息的例子。通过定义存储过程,设置游标来逐条读取图书的条形码、名称和价格,并展示如何控制循环终止条件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

delimiter // -- 声明分隔符
create procedure proce_cursor() -- 声明存储结构
begin
declare tmp_barcode varchar(50); -- 这个量用来存图书码
declare tmp_bookname varchar(50); -- 这个量用来存图书名
declare stop int default 0; -- 这个量用来存循环停止的变量值
declare tmp_price float default 0.0; -- 这个量用来存图书价格
declare bookcount int default 0; -- 这个量用来存图书的数量的
declare cursor_book cursor for select -- 声明游标的
barcode,bookname,price
from tb_bookinfo where typeid = 4;
declare CONTINUE HANDLER FOR SQLSTATE '02000' SET stop = 0; -- 把停止量初设为0 
open cursor_book; -- 打开游标
select count(*) into bookcount from tb_bookinfo where typeid = 4; -- 找到有几本书
WHILE ( stop < bookcount) DO  -- 如果停止量小于图书总数就循环
fetch cursor_book into tmp_barcode,tmp_bookname,tmp_price; -- 循环获取游标里存的值
select tmp_barcode,tmp_bookname,tmp_price; -- 把存的值显出来
set stop = stop + 1; -- 最后让停止量加一
end while; 
close cursor_book;
end
//
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值