数据库之 游标的解读和使用

游标

在前面的分析中可知sql的检索操作返回的数据几乎都是以整个集合的形式,也就是说sql善于将多条查询记录集中到一起并返回,倘若现在需要一行行地处理查询的结果,这对于sql语句来说确实是个难题,好在存在一种称为游标的技术可以解决这个问题,所谓的游标就就是可以将检索出来的数据集合保存在内存中然后依次取出每条数据进行处理,这样就解决了sql语句无法进行行记录处理的难题,游标的读取图解如下:
 
 
 
 
原表:
 
 
 
 
 
批量(游标)取值:
fetch 游标名称 into @变量1,@变量2,@变量3。。。//这里设置值跟查询语句的列一一对应。所以别写错位置了
 
 
mysql存储过程使用表名作为参数-----------实现动态游标
 
视图部分。
 
 
例如上述,我写的是利用游标,清空对应的表,但会出现表“不存在”的情况。
 
 
 
 
存储过程语句:
CREATE DEFINER=`root`@`%` PROCEDURE `sp_empty_table`()
BEGIN
   declare flag int default 0;#定义标识变量用于判断是否退出循环
   declare tmp varchar(40);#定义临时存储变量
   declare cur cursor for select name from view_all_table where name not LIKE 'sys_%' ;#声明游标
   declare continue handler for not found set flag = 1; #异常处理并设置flag=1
   open cur; # 打开游标
   while flag!=1  do
     fetch cur into tmp ;#从游标中取值并存放到tmp中
     if flag !=1  then
            SET @sqlcmd = concat('truncate table ', tmp);
       prepare stmt from @sqlcmd;
       execute stmt;
             deallocate prepare stmt;
           #truncate table tmp;  
     end if;
  end while;
close cur; #关闭游标
END
posted @   程序员ken  阅读(7)  评论(0编辑  收藏  举报  
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
点击右上角即可分享
微信分享提示