mysql 游标总条数_mysql 游标的使用总结

一、游标的基本概念

游标:游标是一个存储在Mysql服务器上的数据库查询,它不是一条select语句,而是被该语句检索出来的结果集。

本人,学习游标中,曾遇到一个问题,循环总是最后多执行一次。下面分析程序,这个是一个sql脚本程序

#if d=0 then   #end if; 注释掉这两行时,会发现,游标中的repeat循环总是多执行一次。

vendors 表中之前的数据为:

633d2758d2055de3d9a581b3ad2c910e.png

图1

二、程序及结果分析

delimiter //

create procedure procursor(in num int)

begin

declare d boolean default 0;

declare o int;

declare t int;

declare c int default 0;

declare mycur cursor for select vend_id from vendors;

declare continue handler for sqlstate '02000' set d =1 ;

create table if not exists results(re_id int,re_num int);

open mycur;

repeat

fetch mycur into o;

#if d=0 then

select o;

# set t=o*num;

insert into results values(o,num*o);

set c=c+1;

select d;

# end if;

until d end repeat;

close mycur;

select * from results;

select c;

end //

delimiter ;

注释 #if d=0 then 和# end if;  执行以上sql语句后,call procursor(100); 执行结果如图2所示;发现,游标的循环总是多执行了一次,执行了4次

doubt.gif,

分析发现,原因在于,最后一次fetch mycur into o;时,mycur 为空 ,o值未更改,所以,最后一组值,多执行了一次。此时若检测d的值,发现d为1。将#if d=0 then和# end if;注释去掉,做一个条件判断后的结果如图3所示。

结果正确

laugh.gif

facbb4fbba0fff36d9fc42e147725b5f.png          

69ed34091c035e10170a79761ef2d175.png

图2                                                                                                图3

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/489136.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AR行业成本拆解解析

来源:三极光电科技一、AR 产业简介(一)AR 定义AR 技术(AugmentedReality,AR)是借助光电显示技术、交互技术、多种传感技术和计算机图形与多媒体技术将计算机生成的虚拟环境与用户周围的真实环境融为一体&am…

python语言处理excel_Python语言操作excel

本文主要向大家介绍了Python语言操作excel,通过具体的内容向大家展示,希望对大家学习Python语言有所帮助。#!/usr/bin/env python#coding: utf-8import xlsxwriterworkbook xlsxwriter.Workbook(demo1.xlsx)worksheet workbook.add_worksheet()workshe…

MySQL索引的索引长度问题

转自:http://samyubw.blog.51cto.com/978243/223773 MySQL的每个单表中所创建的索引长度是有限制的,且对不同存储引擎下的表有不同的限制。  在MyISAM表中,创建组合索引时,创建的索引长度不能超过1000,注意这里索引的长度的计算…

怎么查询mysql的语法_mysql查询语法

-- 基本查询-- 查询所有字段-- select * from 表名;select * from students;select * from classes;-- 查询指定字段-- select 列1,列2,... from 表名;select name, gender from students;-- 使用 as 给字段起别名-- select 字段 as 名字.... from 表名;select name as 名字, g…

mimo雷达信号处理_雷达学术入门脉冲雷达信号处理概述

Reviewed by :甜草莓 Robert Zhou;前置知识:概率论与统计学。面向人群:本科生、研究生/信号处理博士。 编者:对于信号处理来说,雷达和通信一直是一体两面,从MIMO通信到MIMO雷达,从OF…

人类历史十大经典物理实验,有些实验就在你身边为何你没注意到?

来源:数学职业家实验是科学研究的基本方法之一,也是人类认识自然现象、自然性质、自然规律的途径。现代实验技术的发展,不断地揭示和发现各种新的物理现象,日益加深人们对客观世界规律的正确认识,从而推动物理学的向前…

一、linux搭建jenkins+github详细步骤

事情缘由: 现在在做的主要工作是通过jenkinspostman实现api的自动化测试,想要达到的效果是,api自动化测试定时跑脚本的同时,github有新的代码提交,jenkins会自动检测部署新提交的代码,并且再次将api自动化脚…

matlab插值与拟合例题_MATLAB中数据插值和数据拟合的用法

一、数据插值:插值是在一组已知数据点的范围内添加新数据点的技术。可以使用插值来填充缺失的数据、对现有数据进行平滑处理以及进行预测等。MATLAB 中的插值技术可分为适用于网格上的数据点和散点数据点。从数学上来说,数据插值是一种函数逼近的方法。数…

python中with的用法_python 中 with的用法

with 语句使用于对资源进行访问的场合,确保不管使用过程是否发生异常都会执行必要的"清理"操作,释放资源,比如文件使用后自动关闭/线程中锁的自动获取和释放with open("1.txt") as file:data file.read()使用with,能够减少冗长,还能自动处理上…

半导体行业深度报告:从应用到行业的全面复苏

来源:国金证券一、2020-2021年全球半导体市场投资展望多种因素导致全球半导体市场于 2019 年同比下跌近 13%到 4,102 亿美元,而存储器行业同比下跌超过 30%,逻辑半导体同比下跌近 2%。存储器市场占全球半导体市场达到近三年低点的 27%。但受惠…

ES6精华: 解构运算符 扩展运算符 剩余运算符

http://www.tuicool.com/articles/26bAzmm转载于:https://www.cnblogs.com/xuezizhenchengxuyuan/p/6378382.html

mysql 8 修改root密码忘记_忘记mysql8或者mariadb5及以上 的root密码如何更改

实验环境操作系统:lsb_release -aNo LSB modules are available.Distributor ID:UbuntuDescription:Ubuntu 20.04.1 LTSRelease:20.04Codename:focalmysql数据库版本:mysql基本信息具体步骤1. 停止mysql (sudo service mysqld stop 或者 kill -TERM mysq…

配置tomcat_Tomcat 配置必备的 10 个小技巧,让你轻松玩转Tomcat

现在开发Java Web应用,建立和部署Web内容是一件很简单的工作。使用Jakarta Tomcat作为Servlet和JSP容器的人已经遍及全世界。Tomcat具有免费、跨平台等诸多特性,并且更新得很快,现在非常的流行。你所需要做的就是:按照你的需求配置…

卫星移动通信现状与未来发展

来源:电子万花筒摘要:卫星移动通信系统具有覆盖范围广,对地面情况不敏感等优势,已经成为地面移动通信领域重要的组成部分,尤其是在空中、海洋、荒漠戈壁等地面无线网络难以覆盖的地方。随着科学技术的不断进步&#xf…

【SpringCloud】Netflix源码解析之Ribbon:负载均衡策略的定义和实现

Ribbon负载均衡策略定义 IRule其实就只做了一件事情Server choose(Object key),可以看到这个功能是在LB中定义(要求)的,LB把这个功能委托给IRule来实现。不同的IRule可以向LB提供不同的负载均衡算法。 public interface IRule{ pu…

mysql load data infile 重写_mysql load data infile 命令的数据导入

文章介绍了mysql load data infile 命令的数据导入,该方式比直接的insert的效率要高,按照官方的说法是要比insert语句快上20倍,有需要的朋友可参考。使用方式如下:代码如下复制代码mysql>load data local infile "D:/ab.txt" in…

DARPA发布战略框架文件旨在 为美国国家安全创建突破性新技术能力

来源:ARPA网站/图片来自互联网12月4日,DARPA公开了于今年8月份完成的2019年度战略框架文件《面向国家安全创建技术突破和新能力》,阐述了该机构面临的威胁环境,并提出了未来几年的发展计划。1应关注的重点该框架文件指出&#xff…

python数学公式pdf文件的转换_python转换文件 多种文件转换为pdf

1.office文件这里用的是win32com, 需要注意已经安装的python版本是32位还是64位。安装后导入from win32com.client import Dispatch, constants, gencache, DispatchEx(1) word转PDFgencache.EnsureModule({00020905-0000-0000-C000-000000000046}, 0, 8, 4)w DispatchEx(&quo…

rust矿洞绳子怎么爬下_rust矿洞绳子怎么爬下_打工小伙爬冰救人,每动一下都能听到冰面碎裂声...

近日,在辽宁沈阳鲁迅公园,一男子掉进湖中冰窟窿,露出脑袋不停地呼救。生死时刻,一位正在附近找零活的小伙,不顾冰面碎裂发出的咔咔声,一步步爬冰救人,最终在岸上众人帮助下,成功救出…

Python爬虫入门四之Urllib库的高级用法

1.设置Headers 有些网站不会同意程序直接用上面的方式进行访问,如果识别有问题,那么站点根本不会响应,所以为了完全模拟浏览器的工作,我们需要设置一些Headers 的属性。 首先,打开我们的浏览器,调试浏览器F…