MYSQL存储过程-练习5 游标
MYSQL存储过程-练习5 游标
1 DELIMITER $
2 CREATE PROCEDURE sp_cur()
3 BEGIN
4 DECLARE bkname VARCHAR(200);
5 DECLARE done INT DEFAULT 0; #游标结束标志
6
7 DECLARE cur CURSOR FOR SELECT bookname FROM book; #声明游标
8 DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1; #指定游标结束时的返回值
9
10 OPEN cur; #打开游标
11 lp1:LOOP
12 FETCH cur INTO bkname; #获取结果
13 IF done = 1 THEN #当游标的返回值为 1 时 退出循环
14 leavr lp1;
15 END IF;
16 SELECT bkname;
17 END LOOP;
18
19 CLOSE cur; #关闭游标
20
21 END$
22 DELIMITER;
执行存储过程,检查游标运行结果
1 mysql> call sp_cur();
2 +------------------------+
3 | bkname |
4 +------------------------+
5 | HARRY POTER-魔法石1 |
6 +------------------------+
7 1 row in set (0.02 sec)
8
9 +---------------------+
10 | bkname |
11 +---------------------+
12 | HARRY POTER-密室2 |
13 +---------------------+
14 1 row in set (0.02 sec)
15
16 +------------------------+
17 | bkname |
18 +------------------------+
19 | HARRY POTER-凤凰社3 |
20 +------------------------+
21 1 row in set (0.03 sec)
22
23 +------------------------+
24 | bkname |
25 +------------------------+
26 | HARRY POTER-火焰杯4 |
27 +------------------------+
28 1 row in set (0.06 sec)
29
30 +---------------------------+
31 | bkname |
32 +---------------------------+
33 | HARRY POTER-死亡圣器5 |
34 +---------------------------+
35 1 row in set (0.09 sec)
36
37 Query OK, 0 rows affected (0.13 sec)
MYSQL存储过程-练习5 游标的更多相关文章
- mysql 存储过程中使用游标中使用临时表可以替代数组效果
mysql不支持数组.但有时候需要组合几张表的数据,在存储过程中,经过比较复杂的运算获取结果直接输出给调用方,比如符合条件的几张表的某些字段的组合计算,mysql临时表可以解决这个问题.临时表:只有在 ...
- mysql存储过程中使用游标
用户变量一般以@开头,作用于全局范围 局部变量需用 declare 定义格式为 declare 变量名 数据类型 [default value]; mysql 数据类型有 int ,float,dat ...
- MySql存储过程—7、游标(Cursor)
|字号 订阅 1.游标的作用及属性 游标的作用就是用于对查询数据库所返回的记录进行遍历,以便进行相应的操作:游标有下面这些属性: a.游标是只读的,也就是不能更新它: b.游标是不能滚动的,也就是只能 ...
- MySQL存储过程入门教程
存储过程介绍 存储过程是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中.用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它.存储过程可由应用程序通过一个调用来执行,而且 ...
- mysql存储过程之游标遍历数据表
原文:mysql存储过程之游标遍历数据表 今天写一个mysql存储过程,根据自己的需求要遍历一个数据表,因为对存储过程用的不多,语法不甚熟悉,加之存储过程没有调试环境,花了不少时间才慢慢弄好,故留个痕 ...
- MySQL存储过程之游标实战
MySQL存储过程之游标实战 博主日前在解决一个项目需求时,没有什么好的方法,于是就来学习存储过程了,之前也是接触过,奈何年少贪玩,竟是全部又还给了大学老师-苦不堪言呐-. 先说一下业务需求吧 ...
- MySQL存储过程 游标
MySQL存储过程 游标 如何在存储过程中使用MySQL游标来遍历SELECT语句返回的结果集 MySQL游标简介 要处理存储过程中的结果集,请使用游标.游标允许您迭代查询返回的一组行,并相应地处理 ...
- mysql存储过程游标嵌套循环
自己写的一个mysql存储过程如下: BEGIN DECLARE _did bigint(20);DECLARE _count int;DECLARE s1 int;DECLARE cur_1 CUR ...
- Mysql 存储过程中使用多游标
Mysql 存储过程中使用多游标 drop procedure IF EXISTS test_proc_1; create procedure test_proc_1() begin ; ) ; ) ...
- MariaDB MariaDB、MySQL存储过程、游标基础应用举例说明
MariaDB.MySQL存储过程.游标基础应用举例说明 by:授客 QQ:1033553122 测试环境: MariaDB-10.0.19-centos7-x86_64 实践操作: # 创建测试数据 ...
随机推荐
- 【Mybatis + Spring】 Mybatis - Spring 结合
环境搭建 EvBuild 软件环境准备 - MySQL 5.0 + - IDEA 2018 + - JDK1.8 + 依赖包相关 - Junit单元测试 - JDBC驱动 - Mybatis 组件 - ...
- 为什么是Google创造了AlphaGo,而不是其他公司?
相关: Artificial Intelligence | 60 Minutes Full Episodes 答案: Google一直在进行AI方向的探索: Google有足够的算力.
- 程序员学习网站推荐:路线向导(roadmap.sh)
网站地址: https://roadmap.sh/ 在外网的技术论坛上看到这个网站,上面给出多种编程语言的学习路线,也就是给出不同编程语言的从易到难的组成内容(语言特性),通过这个网站可以辅助学习编程 ...
- 编程语言mojo报错:error: cannot call function that may raise in a context that cannot raise
代码: from python import Python fn main(): # fn main() raises: # This is equivalent to Python's `impor ...
- Redis源码安装(Linux环境)
下载源码: wget https://download.redis.io/redis-stable.tar.gz 解压: tar -xzvf redis-stable.tar.gz 编译&安装 ...
- 洛谷P5250 【深基17.例5】木材仓库
[深基17.例5]木材仓库 题目描述 博艾市有一个木材仓库,里面可以存储各种长度的木材,但是保证没有两个木材的长度是相同的.作为仓库负责人,你有时候会进货,有时候会出货,因此需要维护这个库存.有不超过 ...
- Java中如何以文本方式输出"\"
1. 转义符使用 "\"在 java中是一个转义符,只要有它的出现往往有他独特的意义,如下图: 那么,在输出文本时,需要输出"\"怎么办呢,其实很简单,只要多加 ...
- Terraform中的for_each和count
通过Terraform创建云主机时,在某些业务场景下,一个机器需要挂载多个云盘,一般云厂商都是单独创建云主机和云硬盘然后通过attachment的资源去挂载,因此我们的模板大致如下: resource ...
- PHP转Go系列 | ThinkPHP与Gin框架之Redis延时消息队列技术实践
大家好,我是码农先森. 我们在某宝或某多多上抢购商品时,如果只是下了订单但没有进行实际的支付,那在订单页面会有一个支付倒计时,要是过了这个时间点那么订单便会自动取消.在这样的业务场景中,一般情况下就会 ...
- 【YashanDB知识库】如何远程连接、使用YashanDB?
问题现象 在各个项目实施中,我们经常遇到客户.开发人员需要连接和使用YashanDB但不知如何操作的问题,本文旨在介绍远程连接.使用YashanDB的几种方式. 问题的风险及影响 无风险 问题影响的版 ...