文档章节

MySQL:建立含游标的存储过程

派卡琪安
 派卡琪安
发布于 2013/11/21 16:31
字数 280
阅读 49
收藏 0
#show procedure status where db='selfexam';  #查询某数据库里的存储过程


delimiter $$
DROP procedure 
IF EXISTS proc_update_examstate$$
CREATE procedure proc_update_examstate(in uid varchar(36))
BEGIN

DECLARE eid VARCHAR(36);
DECLARE btime datetime;
DECLARE etime datetime;
DECLARE estate int;
DECLARE stop int default 0;#结束标志
DECLARE cur_select_examstate CURSOR FOR 
select ExamId,ExamState,BeginTime,EndTime
from exam where CreatId = uid and ExamState in(0,1);
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET stop=1;

open cur_select_examstate;
fetch cur_select_examstate into eid,estate,btime,etime;
while stop <> 1 do 
     if (estate = 0 && now() >= btime) then 
         update exam set ExamState = 1 where ExamId = eid; 
     end if;
     if(estate = 1 && now() >= etime) then
         update exam set ExamState = 4 where ExamId = eid;   
     end if; 
     if (estate = 0 && now() >= etime) then 
        update exam set ExamState = 4 where ExamId = eid; 
     end if;
     fetch cur_select_examstate into eid,estate,btime,etime;
 end while;

close cur_select_examstate;

End$$
delimiter ;

#call proc_update_examstate('3307518b-1db9-4a9b-bb42-0dbb0e92afef');#调用存储过程

err[1265]:检查传入参数的类型是否正确
delimiter:默认情况下,delimiter是分号;。在命令行客户端中,如果有一行命令以分号结束,那么回车后,mysql将会执行该命令。但有时候,不希望MySQL这么做。可能输入较多的语句,且语句中包含有分号。delimiter $$,表示在出现$$的时候,表示语句执行。


© 著作权归作者所有

派卡琪安
粉丝 28
博文 61
码字总数 19664
作品 0
广州
程序员
私信 提问
Python操作数据库之 MySQL

Python操作数据库之MySQL 一、安装Python-MySQLdb模块 Python-MySQLdb是一个操作数据库的模块,Python 通过它对 mysql 数据实现各种操作。 如果要源码安装,可以这里下载: https://pypi.Pyth...

四京
2017/12/26
0
0
《MySQL必知必会》笔记2

2016/2/26-27 第二十一章创建和操纵表 创建表 CREATE TABLE语句 IF NOT EXISTS:查看表名是否存在,并且仅在表名不存在时创建它。 NULL列和NOT NULL列。(NULL为默认设置) PRIMARY KEY:定义...

fxdhdu
2016/03/01
41
0
Python札记48_操作数据

程序在执行的过程中会产生一些数据,一般情况下会将数据保存在磁盘中。其中最简单的方法就是将数据写入到某个文件中,就是将存储的对象格式化(或者叫做序列化)。 将数据存入文件 模块:将对...

皮皮大
07/19
0
0
MySQL数据库新特性之存储过程入门教程

MySQL数据库新特性之存储过程入门教程 在MySQL 5中,终于引入了存储过程这一新特性,这将大大增强MYSQL的数据库处理能力。在本文中将指导读者快速掌握MySQL 5的存储过程的基本知识,带领用户...

vga
2014/07/21
108
1
MySQL Cursor在存储过程中的使用

MySQL Cursor在存储过程中的使用 游标的作用就是用于对查询数据库所返回的记录进行遍历,以便进行相应的操作。 declares a cursor and associates it with a SELECT statement that retriev...

秋风醉了
2014/11/11
63
0

没有更多内容

加载失败,请刷新页面

加载更多

nginx+tomcat配置https

1、nginx配置https和【proxy_set_header X-Forwarded-Proto $scheme;】 2、java代码: String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServe......

perofu
17分钟前
4
0
必看的Linux系统新手进阶老手心得

不知道从什么时候起,linux这个话题变得越来越普及,成为大家经常讨论的话题。无论在网络上还是实际生活中,竟然很多人都在纠结学习linux的问题。网络上给的答案千千万万,而却还有很多人踌躇...

Linux就该这么学
20分钟前
4
0
Spring Boot 配置元数据指南

1. 概览 在编写 Spring Boot 应用程序时,将配置属性映射到 Java bean 上是非常有用的。但是,记录这些属性的最好方法是什么呢? 在本教程中,我们将探讨 Spring Boot Configuration Proces...

liululee
24分钟前
3
0
foreach查找子类

$list = $menu_model -> menu_list();$parent_list = [];foreach ($list as $v){ if ($v['pid'] == 0) { $parent = $v; foreach ($list as $v1) ......

小小小壮
35分钟前
3
0
基于 HTML5 Canvas 实现的 TP-LINK 电信拓扑设备面板

前言 今天我们以真实的 TP-LINK 设备面板为模型,完成设备面板的搭建,和指示灯的闪烁和图元流动。 先来目睹下最终的实现效果:http://www.hightopo.com/demo/blog_tplink_20170511/index.h...

htdaydayup
41分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部