mysql 存储过程小问题
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 存储过程小问题的更多相关文章
- Mysql 存储过程小例子
创建存储过程: DELIMITER $$ USE `database_name`$$ DROP PROCEDURE IF EXISTS `add_or_update_user`$$ )) BEGIN ...
- mysql 存储过程 小实例
咱们先建个表吧 [SQL] 纯文本查看 复制代码 ? 1 2 3 4 5 6 CREATE TABLE `test1` ( `id` int(10) unsigned NOT NULL A ...
- MySQL带参数的存储过程小例子
http://wwty.iteye.com/blog/698239 mysql存储过程也提供了对异常处理的功能:通过定义HANDLER来完成异常声明的实现 语法如下: DECLARE handler_ ...
- 《MySQL 存储过程编程》-读书笔记
本书结构: 第一部分:存储编程基础 第1章:存储过程程序基础 第2章:MySQL存储编程指南 第3章:语言基础 第4章:语句块 第5章:在存储程序中使用SQL 第一章:MySQL存储程序介绍 存储程序 ...
- MySQL存储过程之事务管理
原文链接:http://hideto.iteye.com/blog/195275 MySQL存储过程之事务管理 ACID:Atomic.Consistent.Isolated.Durable 存储程序 ...
- mysql优化小技巧
对mysql优化时一个综合性的技术,主要包括 a: 表的设计合理化(符合3NF) b: 添加适当索引(index) [四种: 普通索引.主键索引.唯一索引unique.全文索引] c: 分表技术(水平 ...
- mysql存储过程讲解
1.数据库存储过程:简单滴说,存储过程就是存储在数据库中的一个程序. 2..数据库存储过程作用: 第一:存储过程因为SQL语句已经预编绎过了,因此运行的速度比较快. 第二:存储过程可以接受参数.输出参 ...
- Mysql存储过程知识,案例--mysql存储过程基本函数
Mysql存储过程知识,案例: create procedure delete_setting(in p_settingid integer) begin delete from setting wh ...
- MySql存储过程的使用
MySql存储过程跟sql server 有一定的区别,使用说明和步骤如下 使用说明 创建存储过程 MySQL中,创建存储过程的基本形式如下: CREATE PROCEDURE sp_name ([p ...
随机推荐
- 第41课 kmp子串查找算法
1. 朴素算法的改进 (1)朴素算法的优化线索 ①因为 Pa != Pb 且Pb==Sb:所以Pa != Sb:因此在Sd处失配时,子串P右移1位比较没有意义,因为前面的比较己经知道了Pa != Sb ...
- Heartbeat+DRBD+MFS高可用
Heartbeat+DRBD+MFS高可用. 前言:MFS系统简介 组件名称及作用 管理服务器(Managing Server) 简称Master Server 这个组件的角色是管理整个mfs文件 ...
- Java8之分组
数据库中根据多个条件进行分组 ) from tableA group by a, b 现在不使用sql,而直接使用java编写分组,则通过Java8根据多个条件进行分组代码如下: List<Us ...
- qt tcp 通信实例
#include "mainwindow.h" #include "ui_mainwindow.h" #include <QHostAddress> ...
- spring 事务回滚。
在平时的业务难免会遇到 sql异常. 有些业务会涉及 一个方法多个操作例如 dao.update() 1 dao.save(); 2 如果1正常,2不正常.默认是不回滚的. 所以在这个地方要手动处理 ...
- <spark> error:启动spark后查看进程,进程中master和worker进程冲突
启动hadoop再启动spark后jps,发现master进程和worker进程同时存在,调试了半天配置文件. 测试发现,当我关闭hadoop后 worker进程还是存在, 但是,当我再关闭spark ...
- gzip0
但是Apache是专门为PHP所匹配的,其兼容性最好),类似于IIS.下面我们具体来说说Apache里怎么启用gzip压缩: Apache启用gzip 如果要开启gzip的话,一定要打开下面二个模块. ...
- Hessian 源码简单分析
Hessian 是一个rpc框架, 我们需要先写一个服务端, 然后在客户端远程的调用它即可. 服务端: 服务端通常和spring 做集成. 首先写一个接口: public interface Hell ...
- 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 ...
- Mybatis学习4——一对一关联查询方法2------实体作为属性
实体order和user采用resultMap order package pojo; import java.util.Date; public class Order { private Inte ...