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. ZooKeeper系列(8):ZooKeeper伸缩性

    一.ZooKeeper中Observer 1.1 ZooKeeper角色 经过前面的介绍,我想大家都已经知道了在ZooKeeper集群当中有两种角色Leader和Follower.Leader可以接受 ...

  2. Markdown画各种图表

    并不是所有编辑器都支持,比如博客园这个就不支持... 流程图 st=>start: 开始 op=>operation: 首先按个按钮 op2=>operation: 那你从头开始吧 ...

  3. 用最通俗的话解释AJAX是什么东西

    直白地说,就是没用AJAX的网页,你点一个按钮就要刷新一下页面,尽管新页面上只有一行字和当前页面不一样,但你还是要无聊地等待页面刷新. 用了AJAX之后,你点击,然后页面上的一行字就变化了,页面本身不 ...

  4. 升级Android Studio到1.0.2的问题解决

    当前从光网下载到的Android Studio的版本是1.0.1,升级到1.0.2大概是3M的升级包.升级很简单,点击Help--Check For Update... 可是我碰到的情况是提示:Con ...

  5. RabbitMQ manage

    1. RabbitMQ service sudo systemctl enable rabbitmq-server sudo systemctl start rabbitmq-server sudo ...

  6. urllib模块学习

    一.urllib库 概念:urllib是Python自带的一个用于爬虫的库,其主要作用就是可以通过代码模拟浏览器发送请求.其常被用到的子模块在Python3中的为urllib.request和urll ...

  7. 针对开发项目的NABCD的分析

    N(Need需求) 我们的创意是用户登录我们的软件,就可以实现自己修改图片,添加文字.解决了目前用户不知道如何P图,如何添加文字的难题. A(Approach做法) 我们的团队将用VS软件开发一个修改 ...

  8. 30 个 OpenStack 经典面试问题和解答

    现在,大多数公司都试图将它们的 IT 基础设施和电信设施迁移到私有云, 如 OpenStack.如果你打算面试 OpenStack 管理员这个岗位,那么下面列出的这些面试问题可能会帮助你通过面试.-- ...

  9. Java多线程例子

    package rom; import java.awt.image.AreaAveragingScaleFilter; public class Xamle_2 { private static T ...

  10. python:获取访问访问时的响应时间

    import time import os from datetime import datetime from selenium import webdriver from selenium.web ...