mysql写的存储过程的一些小问题

DELIMITER $$

USE `yzhoteldb`$$

DROP PROCEDURE IF EXISTS `yz_waveData`$$

CREATE DEFINER=`cacdba`@`%` PROCEDURE `yz_waveData`(
IN devCode VARCHAR(32),
IN WhereCondition VARCHAR(100)
)
BEGIN
DECLARE ftime VARCHAR(32);
DECLARE fvalue FLOAT;
-- 参与计算的变量需要写一个默值,否则值一直会变成null
DECLARE sumValue FLOAT DEFAULT 0;
DECLARE avgvalue FLOAT;
DECLARE sqlstr VARCHAR(32767);
DECLARE i INT DEFAULT 0;
DECLARE done INTEGER DEFAULT 0;
DECLARE cur CURSOR FOR SELECT f_time,f_value FROM this_yc201508;
-- 这一句一定要写无数据时done标志为1,否则会无循环的。
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done=1;
CREATE TEMPORARY TABLE IF NOT EXISTS avgDATA
(
F_TIME VARCHAR(32),
F_VALUE FLOAT
);
TRUNCATE avgDATA;
OPEN cur;
FETCH cur INTO ftime,fvalue;
WHILE (done<>1)
DO
SET i=i+1;
SET sumValue=sumValue+fvalue;
SET avgvalue=sumValue/i;
INSERT INTO avgDATA(F_TIME,F_VALUE) VALUES(ftime,avgvalue);
FETCH cur INTO ftime,fvalue;
END WHILE;
CLOSE cur;
-- INSERT INTO avgDATA(F_TIME,F_VALUE) VALUES('1','11'); SELECT * FROM avgDATA;
/*set sqlstr="SELECT * FROM avgDATA ";
select sqlstr;
IF sqlstr<>"" THEN
begin
SET @sqlCommand=sqlstr; 动态语句采用这种形式来写
PREPARE STMT FROM @sqlCommand;
EXECUTE STMT;
DEALLOCATE PREPARE STMT;
end;
END IF; */ END$$
DELIMITER ; -- 没有这一句的话,mysql会把这段SQL当SQL语句而不是存储过程

  

mysql 存储过程小问题的更多相关文章

  1. Mysql 存储过程小例子

    创建存储过程: DELIMITER $$ USE `database_name`$$ DROP PROCEDURE IF EXISTS `add_or_update_user`$$ )) BEGIN ...

  2. mysql 存储过程 小实例

    咱们先建个表吧 [SQL] 纯文本查看 复制代码 ? 1 2 3 4 5 6     CREATE TABLE `test1` (   `id` int(10) unsigned NOT NULL A ...

  3. MySQL带参数的存储过程小例子

    http://wwty.iteye.com/blog/698239 mysql存储过程也提供了对异常处理的功能:通过定义HANDLER来完成异常声明的实现 语法如下: DECLARE handler_ ...

  4. 《MySQL 存储过程编程》-读书笔记

    本书结构: 第一部分:存储编程基础 第1章:存储过程程序基础 第2章:MySQL存储编程指南 第3章:语言基础 第4章:语句块 第5章:在存储程序中使用SQL 第一章:MySQL存储程序介绍 存储程序 ...

  5. MySQL存储过程之事务管理

    原文链接:http://hideto.iteye.com/blog/195275 MySQL存储过程之事务管理 ACID:Atomic.Consistent.Isolated.Durable 存储程序 ...

  6. mysql优化小技巧

    对mysql优化时一个综合性的技术,主要包括 a: 表的设计合理化(符合3NF) b: 添加适当索引(index) [四种: 普通索引.主键索引.唯一索引unique.全文索引] c: 分表技术(水平 ...

  7. mysql存储过程讲解

    1.数据库存储过程:简单滴说,存储过程就是存储在数据库中的一个程序. 2..数据库存储过程作用: 第一:存储过程因为SQL语句已经预编绎过了,因此运行的速度比较快. 第二:存储过程可以接受参数.输出参 ...

  8. Mysql存储过程知识,案例--mysql存储过程基本函数

    Mysql存储过程知识,案例: create procedure delete_setting(in p_settingid integer) begin delete from setting wh ...

  9. MySql存储过程的使用

    MySql存储过程跟sql server 有一定的区别,使用说明和步骤如下 使用说明 创建存储过程 MySQL中,创建存储过程的基本形式如下: CREATE PROCEDURE sp_name ([p ...

随机推荐

  1. 第41课 kmp子串查找算法

    1. 朴素算法的改进 (1)朴素算法的优化线索 ①因为 Pa != Pb 且Pb==Sb:所以Pa != Sb:因此在Sd处失配时,子串P右移1位比较没有意义,因为前面的比较己经知道了Pa != Sb ...

  2. Heartbeat+DRBD+MFS高可用

    Heartbeat+DRBD+MFS高可用. 前言:MFS系统简介 组件名称及作用 管理服务器(Managing Server)   简称Master Server 这个组件的角色是管理整个mfs文件 ...

  3. Java8之分组

    数据库中根据多个条件进行分组 ) from tableA group by a, b 现在不使用sql,而直接使用java编写分组,则通过Java8根据多个条件进行分组代码如下: List<Us ...

  4. qt tcp 通信实例

    #include "mainwindow.h" #include "ui_mainwindow.h" #include <QHostAddress> ...

  5. spring 事务回滚。

    在平时的业务难免会遇到 sql异常. 有些业务会涉及 一个方法多个操作例如 dao.update() 1 dao.save(); 2 如果1正常,2不正常.默认是不回滚的. 所以在这个地方要手动处理 ...

  6. <spark> error:启动spark后查看进程,进程中master和worker进程冲突

    启动hadoop再启动spark后jps,发现master进程和worker进程同时存在,调试了半天配置文件. 测试发现,当我关闭hadoop后 worker进程还是存在, 但是,当我再关闭spark ...

  7. gzip0

    但是Apache是专门为PHP所匹配的,其兼容性最好),类似于IIS.下面我们具体来说说Apache里怎么启用gzip压缩: Apache启用gzip 如果要开启gzip的话,一定要打开下面二个模块. ...

  8. Hessian 源码简单分析

    Hessian 是一个rpc框架, 我们需要先写一个服务端, 然后在客户端远程的调用它即可. 服务端: 服务端通常和spring 做集成. 首先写一个接口: public interface Hell ...

  9. Unable to locate Spring NamespaceHandler for XML schema namespace [http://www.springframework.org/schema/tx]

    ERROR - Context initialization failed org.springframework.beans.factory.parsing.BeanDefinitionParsin ...

  10. Mybatis学习4——一对一关联查询方法2------实体作为属性

    实体order和user采用resultMap order package pojo; import java.util.Date; public class Order { private Inte ...