探讨mysql的游标cursor

liyuzhao8年前学习记录1713

以下是我的做法步骤代码:

//新建动物表
create table dw(
dw_id int,
dw_name varchar(20),
dw_num varchar(10)

);
//插入几条数据
insert into dw values(1,’mao’,’10’)$
insert into dw values(2,’gou’,’20’)$
insert into dw values(3,’ping’,’30’)$
//创建存储过程,并声明游标,循环查询出一个表的所有数据
create procedure p1()
begin
declare a int default 1; –定义一个循环条件
declare id int; –用来装查询出来的动物id
declare name varchar(20); –用来装查询出来动物名字
declare num varchar(10);
declare getdw cursor for select dw_id,dw_name,dw_num from dw;
declare exit handler for NOT FOUND set a:=0; –exit–>是当条件满足了就不执行下面的代码,continue反过来。这里的意思是,当表没有数据了,就会触发

open getdw;
repeat
fetch getdw into id,name,num; –把查询出来的值赋给这些变量
select id,name,num;
until a=0 end repeat;
close getdw;
end$

测试p1,如图:

58d2a16213013.png

已经成功的查询出所有的数据。以上必须要去掉注释,否则会出错。



相关文章

用mysql创建触发器

学习创建触发器:触发器的定义就是,当执行增删改查等操作就会触发执行sql语句。 先创建两个表:dongwu表和购买buy表,数据字典如下:动物表:Create table dongwu(Dw...

探讨mysql的权限问题

不管是本地连接数据库还是远程连接数据库,要想连接成功必须要有四样:1:host   –>连接地址2:user  –>连接账号3:password  –>...

session和cookie原理透彻分析

一直以来对session和cookie这个两个的原来有点不明确。上次去公司面试的时候就有这个面试题,心里一直都想搞清楚这两个的原理,但是一直没有好的理解,所幸今晚翻了以前看十八哥的视频,非常透彻的讲解...

探索sql合并插入+事务性能问题

探索sql合并插入+事务性能问题准备:1:为了方便默认用thinkphp5框架来测试,直接下载官方的thinkphp5框架,部署到本地的环境,开启debug调试来追踪sql语句。2:新建一个表为tes...

centos7.4 安装lnmp

centos7.4 安装lnmp

最近购买了两天云服务器,所以环境需要重新配置下。采用php7.2+nginx+mysql5.7 .安装步骤:yum的安装?1yum updateyum安装nginx安装nginx最新源?12yum l...

数据库实现1+到N得出总和的编程

数据库实现1+到N得出总和的编程

delimiter $    //这个是把结束符号变为$create procedure p1(N int)begindeclare total int default 0;dec...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。