mysql 存储过程 out cursor_Mysql存储过程中使用cursor
一、表
学生表
CREATE TABLE `t_student` (
`stuNum` int(11) NOT NULL auto_increment,
`stuName` varchar(20) default NULL,
`birthday` date default NULL,
PRIMARY KEY (`stuNum`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
学生分数表
CREATE TABLE `t_stu_score` (
`id` int(11) NOT NULL auto_increment,
`stuNum` int(11) default NULL,
`score` decimal(6,2) default NULL,
PRIMARY KEY (`id`),
KEY `FK_t_stu_score` (`stuNum`),
CONSTRAINT `FK_t_stu_score` FOREIGN KEY (`stuNum`) REFERENCES `t_student` (`stuNum`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
学生详细表
CREATE TABLE `t_stu_detail` (
`id` int(11) NOT NULL auto_increment,
`stuName` varchar(20) default NULL,
`score` decimal(6,2) default NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
将t_Student和t_stu_score表中满足一定条件的数据插入到t_stu_detail中。
二、过程
DELIMITER &&
CREATE PROCEDURE proc_AddStuDetail( IN p_score DECIMAL(6,2) )
BEGIN
DECLARE vstuNum INT;
DECLARE vstuName VARCHAR(20);
DECLARE vbirthday DATE;
DECLARE vscore DECIMAL(6,2);
DECLARE done INT;
-- 定义游标
DECLARE stuCursor CURSOR
FOR
SELECT stuNum,stuName,birthday FROM t_Student;
-- 定义结束标记
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;
-- 打开游标
OPEN stuCursor;
-- 循环
stuLoop:LOOP
-- 取游标中的数据
FETCH stuCursor INTO vstuNum,vstuName,vbirthday;
IF done = 1 THEN
LEAVE stuLoop;
END IF;
IF DATE(vbirthday) >= '1990-03-01' THEN
SELECT score INTO vscore FROM t_stu_score WHERE stuNum = vstuNum;
IF vscore >= p_score THEN
INSERT INTO t_stu_detail VALUES(NULL,vstuNum,vscore);
END IF;
END IF;
END LOOP stuLoop;
-- 关闭游标
CLOSE stuCursor;
END
&&
DELIMITER ;
三、调用过程
CALL proc_AddStuDetail(86);
mysql 存储过程 out cursor_Mysql存储过程中使用cursor相关推荐
- MySQL利用存储过程清除所有表中的所有记录
MySQL利用存储过程清除所有表中的所有记录 在使用MySQL过程中,难免会出现一些测试数据,然而这些测试数据在真正部署运行的时候,通常要被清楚掉,并且自增长的字段要回复初始值.如何高效快速的实现以上 ...
- MySQL数据库在众多表中对表名的查询及预处理存储过程(变量做表名)
以下的文章主要介绍的是MySQL数据库在众多表中进行表名与字段名的查询的实际操作步骤,以及对实现其查询所要用到的SQL 语句的介绍,还有两个实际解决方案的描述,以下就是文章的主要内容描述. 在MySQ ...
- 一 什么是mysql cursor_mysql中的cursor是什么意思?
text cursor 文本光标 例句 1.Moving the text and cursor vertically or horizontally within the view. 在视图中垂直或 ...
- 用于在MYSQL中创建存储过程的关键字是_下面选项中,用于在删除存储过程时,检测存储过程是否存在的关键字是_学小易找答案...
[判断题]秦陵兵马俑三号坑设计的是 军事指挥部 . [单选题]以下不是超塑性变形特点的是:( ) [判断题]如果从表中的外键引用了主表中的值,则不能删除主表中被引用的数据. [单选题]下面选项中,用于 ...
- mysql 函数 局部变量_MySQL 存储过程 存储函数 局部变量 游标 概念示例
一个存储过程是一个可编程的函数,它可以在MySQL中创建并保存.它是由一些SQL语句和一些特殊的控制结构语句组成. 当希望在不同的应用程序或平台上执行相同的函数,或者封装特定的功能时,存储过程是一个非 ...
- 超详细图解!【MySQL进阶篇】存储过程,视图,索引,函数,触发器
超详细图解![MySQL进阶篇]存储过程,视图,索引,函数,触发器 1.1 下载Linux 安装包 1.2 安装MySQL 1.3 启动 MySQL 服务 1.4 登录MySQL 2\. 索引 2.1 ...
- mysql 扩展存储过程_MySQL4:存储过程和函数
什么是存储过程 简单说,存储过程就是一条或多条SQL语句的集合,可视为批文件,但是起作用不仅限于批处理.本文主要讲解如何创建存储过程和存储函数以及变量的使用,如何调用.查看.修改.删除存储过程和存储函 ...
- mysql存储过程实va_MySQL存储过程学习 (1)
1. 创建实例数据库 create database db5; use db5; 2.创建一个简单的工作表,并插入数据 create table t(s1 int); inse ...
- mysql存储过程删除_MySQL 存储过程删除大表
1.权限问题 alter routine 编辑或删除存储过程 create routine 建立存储过程 execute 创建存储过程 2.存储过程相关的一些命令 show procedure sta ...
最新文章
- vlookup 2张表 显示na_Vlookup函数的这7个应用技巧都不掌握,那就真的Out了
- 计算机系统崩溃重新装机,当计算机系统崩溃时如何用U盘重新安装Win7系统
- 视图插入数据_用EXCEL作数据分析--招聘信息
- java getpathinfo_request.getServletPath()和request.getPathInfo()用法
- Java-判断输入数字的奇偶性
- 操作系统--用户级线程和内核级线程
- Java同步关键字的C#版本?
- C#操作操作类库五(字符串的常用扩展方法)
- 移动端的头部标签和meta
- Linux下更改目录及其下的子目录和文件的访问权限
- 洛谷 P1035 级数求和【二分||枚举】
- Linux man中文手册的安装与使用
- 多个 EXCEL 文件如何合并成一个文件
- 交换机短路_交换机环路发现及处理
- Vue+SpringBoot+Mybatis的简单员工管理项目
- 刚刚,2022中科院分区表发布(附下载)
- 我的Java学习之路(第十六天)----- Java实现杨辉三角
- 【GBASE】南大通用GBase 8a MPP Cluster技术特点
- 大数据开发:MongoDB系统架构简介
- 韦氏进销存软件功能更新20220223
热门文章
- 为何要使用大数据可视化平台
- 闭包 python_Python闭包思想与用法浅析
- 退火模拟算法c语言程序,C语言模拟退火算法(C language simulated annealing algorithm).doc...
- oracle退出scott_Oracle_11g中解决被锁定的scott用户的方法(转载)
- vc只能调用matlab子函数,Vc++6.0调用matlab的数学库函数
- 重磅︱R+NLP:text2vec包——New 文本分析生态系统 No.1(一,简介)
- [云计算]交换机二层端口access、trunk、hybird的理解
- python 内置变量
- 数组、链表实现队列、栈
- 单线程实现同时监听多个端口(windows平台c++代码)