DECLARE report_url varchar(256);
-- 定义游标,并将sql结果集赋值到游标中
DECLARE report CURSOR FOR select reportId,reportUrl from patrolReportHistory;
-- 声明当游标遍历完后将标志变量置成某个值
DECLARE CONTINUE HANDLER FOR NOT FOUND SET s=1;
-- 打开游标
open report;
-- 将游标中的值赋值给变量,注意:变量名不要和返回的列名同名,变量顺序要和sql结果列的顺序一致
fetch report into report_id,report_url;
-- 当s不等于1,也就是未遍历完时,会一直循环
while s<>1 do
-- 执行业务逻辑
update patrolreporthistory set reportUrl = CONCAT('patrolReport.html?monitorId=',substring(report_url,15,1),'&reportId=',report_id) where reportId=report_id;
-- 将游标中的值再赋值给变量,供下次循环使用
fetch report into report_id,report_url;
-- 当s等于1时表明遍历以完成,退出循环
end while;
-- 关闭游标
close report;
-- 执行存储过程
call init_reportUrl()
当前有三张表A、B、C其中A和B是一对多关系,B和C是一对多关系,现在需要将B中A表的主键存到C中;
常规思路就是将B中
查询
出来然后通过一个update语句来更新C表就可以了,但是B表中有2000多条数据,
难道要执行2000多次?显然是不现实的;最终找到写一个
存储过程
然后通过
循环
来更新C表,
然而
存储过程
中的写法用的就是游标的形式。
游标实际上是一种能从包括多条数据记录的结果
集
中每次提取一条记录的机制。
游标充当指针的作用。
尽管游标能
遍历
结果中的所有行,但他一次只指向一行。
游标的作用就是用于对
查询
数据库所返回的记录进行
遍历
,以
-- 创建
存储过程
之前需判断该
存储过程
是否已存在,若存在则删除DROP PROCEDURE IF EXISTS init_
report
Url;-- 创建
存储过程
CREATE PROCEDURE init_
report
Url()BEGIN-- 定义变量DECLARE s int DEFAULT 0;DECLARE
report
_id varchar(255);DECLARE
report
_url v...
当需要
查询
复杂的数据模型并返回多个结果
集
时,使用
MySQL
存储过程
可以有效地优化性能。同时,在开发中使用 Mybatis 可以方便地调用
MySQL
存储过程
并获取多个结果
集
。本文将介绍如何在 Mybatis 中调用
MySQL
存储过程
,并获取多个结果
集
。
1:使用程序修正数量不一致的问题
2:使用
MySQL
的
存储过程
若使用第一种办法的话,需要重新发布版本,比较麻烦,再加上领导对发布版本有些抵触,我觉得我们还是使用第二种方式比较快捷。
1. 表结构
测试表结构如下:
CREATE TABLE `member_album` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '数据I
自从学过
存储过程
后,就再也没有碰过
存储过程
,这是毕业后写的第一个
存储过程
。
因为项目里设备的种类比较多,分别存在不同的数据表中,java中对应不同的java bean对象,想要统一管理有点困难。最近正好要开发一个功能模块,就是需要统一对设备进行处理,想着为了以后都能方便的统一处理各种设备,就从现在开始设计一套方案管理起这些项目吧。
如何统一管理呢?
如果从项目一开始设计的时候就能考虑到项目会发展成今天这样,当初就应该抽取公共父类,对所有类型的所有公共字段进行统一抽取,这样无论添加多少模块,需要对设备进行操作的时候,都只需要关联统一父类,数据间的关系就清晰多了,开发也会简单很多。
MySQL
针对不同的用户提供了2中不同的版本:
MySQL
Community Server:社区版。由
MySQL
开源社区开发者和爱好者提供技术支持,对开发者开放源代码并提供免费下载。
MySQL
Enterprise Server:企业版。包括最全面的高级功能和管理工具,不过对用户收费。
下面讲到的
MySQL
安装都是以免费开源的社区版为基础。打开
MySQL
数据库官网的下载地址http://dev.
一、下载
MySQL
首先,去数据库的官网http://www.
mysql
.com下载
MySQL
。点击进入后的首页如下:
然后点击downloads,community,选择
MySQL
Community Server。如下图:
滑到下面,找到Recommended Download,然后点击go to download page。如下图:
点击download进入下载页面选择No thanks,
数据库(DB,DataBase)概念:数据仓库,软件,安装在操作系统之上;SQL,可以存储大量的数据,500万以下,500万以上要做索引优化作用存储数据,管理数据
MySQL
是一个关系型数据库管理系统前世瑞典
MySQL
AB公司今生属于Oracle旗下产品
MySQL
是最好的RDBMS(RelationalDatabaseManagementSystem,关系型数据库管理系统)应用软件之一,开源的数据库软件体积小、速度快、总体拥有成本低,招人成本比较低,所有人必须会方法一方法二。...
· 使用 MODEL 子句执行行间计算
· 使用 PIVOT 和 UNPIVOT 子句,它们对于了解大量数据的总体趋势非常有用
· 执行 top-N
查询
,从结果
集
返回顶部或底部的 N 行
declare temp_id int;
declare flag int default 0;
# 这是重点,定义一个游标来记录sql
查询
的结果(此处的知识点还有SQL的模糊
查询
,见补充)
declare s_list cursor for select id
文章目录一、数据库概述(1)数据库概述(2)数据库的分类二、
Mysql
概述(1)
Mysql
概述(2)
Mysql
的存储原理(3)使用cmake编译
mysql
参数说明(4)
Mysql
自带的四个数据库三、安装
Mysql
(1)实验环境(2)实验步骤四、SQL语句概述(1)什么是SQL(2)SQL语句分类(3)数据类型(4)使用SQL语句-查看所有数据库-创建库,查看库信息-查看表,创建表-表的重命名-修改表的属性、格式-添加表的字段(项)-删除表的字段(项)-修改表的字段和类型-修改表的字段类型和顺序-删除表和库-