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. delphi打开项目提示unable to find resource on dll projects

    用记事本打开*.dof文件, 把这行[Resource DLL Projects]及它的所属的内容删除就行了.

  2. Linux 双网卡配置两个IP同时只有一个会通的原因

    http://blog.csdn.net/centerpoint/article/details/38542719 根本原因: Linux默认启用了反向路由检查 如果2个网卡在一个Lan里面,那么服务 ...

  3. hadoop机群 运行wordcount出现 Input path does not exist: hdfs://ns1/user/root/a.txt

    机群搭建好,执行自带wordcount时出现: Input path does not exist: hdfs://ns1/user/root/a.txt 此错误. [root@slave1 hado ...

  4. Cache: a place for concealment and safekeeping.Cache: 一个隐藏并保存数据的场所

    原文标题:Cache: a place for concealment and safekeeping 原文地址:http://duartes.org/gustavo/blog/ [注:本人水平有限, ...

  5. 函数的嵌套+nonlocal和global关键字(重点)

    1.在函数中声明函数 在内部函数中使用变量的时候, 查找顺序: 先找自己 -> 上一层 -> 上一层..全局 -> 内置 # 函数的互相调用 # def func1(): # pri ...

  6. [python] pyCharm 右击出现run unittest 解决办法

    最近在使用 pyCharm 的时候发现一个情况,右击时出现 "unittests for ...",这时候如果继续点击 run ,可能会出现错误. 看到网上的介绍说,原因是程序方法 ...

  7. CMD命令行合并多个txt文件到一个txt文件

    运行->输入CMD回车 输入: Copy G:\MyFolder\*.txt  G:\NewFolder\a.txt 回车即可 意思是将G:\MyFolder\下的所有txt文本内容复制到G:\ ...

  8. 《算法》第二章部分程序 part 5

    ▶ 书中第二章部分程序,加上自己补充的代码,包括利用优先队列进行多路归并和堆排序 ● 利用优先队列进行多路归并 package package01; import edu.princeton.cs.a ...

  9. php-- orther

    0.PHP实现物流查询(通过快递网API实现) 1.php7 新特性 2.php的精确计算 3.PHP大小写是否敏感问题的汇总 4.取得类的 对象属性名 和类的属性 和类的方法名 5.php判断 != ...

  10. <转载>Bootstrap 入门教程 http://www.cnblogs.com/ventlam/archive/2012/05/28/2520703.html 系列

    Bootstrap建立了一个响应式的12列格网布局系统,它引入了fixed和fluid-with两种布局方式.我们从全局样式(Global Style),格网系统(Grid System),流式格网( ...