`
阅读更多

通过传递节假日信息基础表主键节日开始时间,添加或修改日期信息表中所属节日、所属节日第几天信息,达到配置节假日信息功能。

在mysql存储过程《2》中使用了loop完成此配置节假日的功能,现在使用另外两种循环方式完成此功能。

一:使用while。

DROP PROCEDURE
IF EXISTS holiday;

CREATE PROCEDURE holiday (
	IN holiday INT,
	IN startTime VARCHAR (12)
)
BEGIN
	DECLARE
		C INT DEFAULT 0;

DECLARE
	dateOne VARCHAR (12);

DECLARE
	offsetValue INT DEFAULT 1;

DECLARE
	done INT DEFAULT FALSE;

DECLARE
	cu CURSOR FOR SELECT
		date
	FROM
		util_date
	WHERE
		date >= startTime
	LIMIT C;

DECLARE
	CONTINUE HANDLER FOR NOT FOUND
SET done = TRUE;

SELECT
	days INTO C
FROM
	util_holiday
WHERE
	id = holiday;

UPDATE util_date
SET holidayid = '0',
 dayoffset = '0'
WHERE
	YEAR = SUBSTRING(startTime, 1, 4)
AND holidayid = holiday;

OPEN cu;

FETCH cu INTO dateOne;


WHILE done = FALSE DO
	UPDATE util_date
SET holidayid = holiday,
 dayoffset = offsetValue
WHERE
	date = dateOne;


SET offsetValue = offsetValue + 1;

FETCH cu INTO dateOne;


END
WHILE;

CLOSE cu;


END

 二:使用repeat。

DROP PROCEDURE
IF EXISTS holiday;

CREATE PROCEDURE holiday (
	IN holiday INT,
	IN startTime VARCHAR (12)
)
BEGIN
	DECLARE
		C INT DEFAULT 0;

DECLARE
	dateOne VARCHAR (12);

DECLARE
	offsetValue INT DEFAULT 1;

DECLARE
	done INT DEFAULT FALSE;

DECLARE
	cu CURSOR FOR SELECT
		date
	FROM
		util_date
	WHERE
		date >= startTime
	LIMIT C;

DECLARE
	CONTINUE HANDLER FOR NOT FOUND
SET done = TRUE;

SELECT
	days INTO C
FROM
	util_holiday
WHERE
	id = holiday;

UPDATE util_date
SET holidayid = '0',
 dayoffset = '0'
WHERE
	YEAR = SUBSTRING(startTime, 1, 4)
AND holidayid = holiday;

OPEN cu;


REPEAT
	FETCH cu INTO dateOne;


IF done = FALSE THEN
	UPDATE util_date
SET holidayid = holiday,
 dayoffset = offsetValue
WHERE
	date = dateOne;


SET offsetValue = offsetValue + 1;


END
IF;

UNTIL done
END
REPEAT
;

CLOSE cu;


END

 mysql中的while和repeat就像是java中的while和do……while。

分享到:
评论

相关推荐

    Jsp_Uploading_MySQL.rar_mysql image

    这个名为“Jsp_Uploading_MySQL.rar_mysql image”的压缩包内容很可能涉及到使用JSP实现文件上传功能,特别是图片(image),并将这些文件存储到MySQL数据库中的过程。这一主题涵盖了许多关键知识点,下面我们将详细...

    支持断点续传的WEB批量上传工具-HttpUploader 5 UTF-8 MySQL+Oracle+SQL

    断点续传是HttpUploader的一个核心特性,这意味着如果上传过程中因网络问题中断,用户无需重新开始,可以从上次中断的地方继续上传,极大地提高了上传效率和用户体验。这一功能通过保存上传进度信息来实现,当网络...

    文件上传下载(jsp+mysql)

    在这个系统中,用户可以选择本地的文件进行上传,服务器接收到文件后将其存储到特定的服务器目录,例如"upload",并可能通过数据库(如MySQL)来管理这些文件的信息。用户可以通过同样的Web界面请求下载已上传的文件...

    fileupload实现断点续传,大家看看

    2. 实现断点续传的关键步骤 - **状态保存**:客户端在开始上传前,需要检查本地是否有已保存的上传进度信息。如果存在,就使用这些信息来确定起始上传位置。 - **定制HTTP请求**:由于标准的HTTP协议不直接支持...

    酒店管理系统 mysql设计应用实战

    酒店管理系统 mysql设计应用实战 1.酒店入住流程 客户可有三种需求分别为入住请求,续住请求及退房请求 2.酒店系统信息 整体系统功能概况 3.总体ER图 概念:ER模型,全称为实体关系模型,也称为E-R图。E-R模型由实体...

    java断点续传,带进度条插件

    这个组件可能包含了实现断点续传和进度条展示的功能,支持UTF-8编码,并且可能已经集成了MySQL数据库的支持,用于存储文件上传状态信息。 对于`HttpUploader5Utf8MySQL`,我们可以推测这可能是一个基于HTTP的上传...

    数据库课程设计c#+Mysql数据库课程设计-房屋租赁管理系统.zip

    熟悉MySQL需要理解SQL语言,包括数据查询、增删改查操作,以及索引、视图、存储过程等高级特性。 三、数据库设计 在设计房屋租赁管理系统数据库时,需要明确实体(如房屋、租户、房东等)及其关系,通过ER图进行...

    plupload java断点续传

    在Java环境中,可以利用Spring MVC或者Servlet来接收和处理上传请求,使用如MySQL、MongoDB等数据库来存储分块信息,或者使用分布式文件系统如HDFS来存储和合并大文件。同时,还需要考虑安全性,比如防止重复上传、...

    大文件上传支持断点续传springboot版

    本项目"大文件上传支持断点续传springboot版"便是一个很好的示例,它整合了MyBatis作为持久层框架,并使用MySQL作为数据库存储。下面将详细解释这个项目的核心知识点。 **1. 断点续传技术** 断点续传是一种允许用户...

    Navicat,Mysql5.5,Xshell5,Xftp5,Wireshark64-2.4.

    【Mysql5.5】是MySQL数据库的一个版本,它提供了关系型数据库管理系统的核心功能,包括SQL语法支持、事务处理、存储过程等。MySQL5.5在性能、可扩展性和安全性方面都有显著提升,特别是InnoDB存储引擎的改进,使得它...

    PHP实例开发源码—FFS php快速文件分享系统 MYSQL版.zip

    这个系统利用了MySQL数据库进行数据存储和管理,使得文件分享过程更加高效和稳定。在深入探讨这个系统之前,我们首先需要了解PHP和MySQL的基础知识。 PHP(Hypertext Preprocessor)是一种广泛使用的开源服务器端...

    基于ssm+mysql在线音乐网站系统源码数据库.zip

    MySQL作为关系型数据库管理系统,存储了网站的各类数据,如用户信息、歌曲详情、播放列表等。它的高性能和稳定性为在线音乐服务提供了坚实的数据支持。在设计数据库时,需要考虑表的结构、字段类型、索引优化等方面...

    JSP+servlet,网盘系统,mysql.zip

    本项目“JSP + Servlet + MySQL”网盘系统,结合了前端展示、后端处理以及数据库存储的核心技术,旨在为用户提供一个安全、便捷的在线文件存储解决方案。 1. **JSP(JavaServer Pages)**: JSP是Java平台上的动态...

    SSM+MySQL汽车租赁系统源码.zip

    4. **MySQL数据库**:MySQL是一个流行的开源关系型数据库管理系统,用于存储和管理汽车租赁系统的数据,如用户资料、车辆信息、租赁记录等。其性能高效、稳定,适合中小型企业级应用。 5. **README.md**:这个文件...

    express+mysql+vue,从零搭建一个商城管理系统7-文件上传,大文件分片上传

    MySQL作为关系型数据库,将用于存储文件元数据,如文件名、文件类型、上传时间以及文件的存储位置等。创建一个`uploads`表,包括这些字段,并为每个上传的文件分配一个唯一的ID,以便后续操作。 在后端实现大文件分...

    多线程断点续传

    2. **进度存储模块**:使用数据库存储每个线程的下载进度,可能包括文件ID、线程ID、下载的字节数等信息。 3. **断点检查器**:在启动下载前,检查数据库中是否存在已下载的文件记录,如果存在,则从相应的位置开始...

    汽车租赁后台管理系统(PHP+mysql+apache)

    2. **MySQL数据库设计** MySQL是关系型数据库管理系统,以其高性能、高可靠性和易于使用的特点,成为了Web开发的首选数据库。在汽车租赁系统中,数据库可能包含车辆信息表、订单表、用户信息表等,用于存储和检索...

    java实现大文件上传分片上传断点续传.zip

    3. **断点续传**:断点续传允许在上传过程中因网络问题中断后,从上次中断的位置继续上传,避免了重新上传整个文件。Java中实现断点续传需要记录每个分片的上传状态,通常存储在数据库或临时文件中,当再次上传时...

Global site tag (gtag.js) - Google Analytics