-- Function: wsn_dynamic_amount_power(character varying, character varying, integer, numeric)
-- DROP FUNCTION wsn_dynamic_amount_power(character varying, character varying, integer, numeric);
CREATE OR REPLACE FUNCTION wsn_dynamic_amount_power(app_id character varying, area_id character varying, node_id integer, data numeric)
RETURNS boolean AS
$BODY$
DECLARE
node integer;
sensor_data numeric(8,0);
use_data numeric(8,0);
work_time numeric(8,0);
table_name1 varchar;
table_name2 varchar;
max_time time;
min_time time;
array_data varchar;
id integer;
BEGIN
table_name1 = 'app_' || app_id || '_area_' || area_id || '_generation_power';
table_name2 = 'app_' || app_id || '_area_' || area_id || '_use_power';
--RAISE NOTICE '%', curr_date;
IF node_id='30' OR node_id='31' OR node_id='32' THEN
/* RAISE NOTICE '%', table_name1; */
EXECUTE 'SELECT generation_power FROM '|| table_name1 ||' WHERE node_id= ' || node_id ||' AND receive_date='''|| current_date ||'''' INTO sensor_data;
/*
RAISE NOTICE '%', sensor_data;
RAISE NOTICE '%', data;
RAISE NOTICE '%', current_date;
*/
IF sensor_data IS NULL THEN
/* RAISE NOTICE '%', '11OK'; */
EXECUTE 'INSERT INTO '|| table_name1 || ' (node_id,receive_date,generation_power)
VALUES' || '(' ||
node_id || ',''' ||
current_date || ''',''' ||
data || ''')';
ELSE
sensor_data := sensor_data + data;
EXECUTE 'UPDATE ' || table_name1 || ' SET
generation_power=''' || sensor_data || '''
WHERE receive_date=''' || current_date || '''
AND node_id=' || node_id;
END IF;
END IF;
IF node_id='37' THEN
EXECUTE 'SELECT id,use_power FROM '|| table_name2 || ' WHERE node_id= ' || node_id || ' AND receive_date='''|| current_date ||'''' INTO id,use_data;
IF id IS NULL THEN
/* RAISE NOTICE '%', '11OK'; */
EXECUTE 'INSERT INTO '|| table_name2 || ' (node_id,receive_date,use_power)
VALUES' || '(' ||
node_id || ',''' ||
current_date || ''',' ||
data || ')';
ELSE
use_data := use_data + data;
EXECUTE 'UPDATE ' || table_name2 || ' SET
use_power=''' || use_data || '''
WHERE receive_date=''' || current_date || '''
AND node_id=''' || node_id ||'''
AND id=''' || id || '''';
END IF;
END IF;
RETURN true;
END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
ALTER FUNCTION wsn_dynamic_amount_power(character varying, character varying, integer, numeric) OWNER TO wsn;
分享到:
相关推荐
`这将在你的数据库管理系统(如MySQL、PostgreSQL等)中创建一个名为“School”的空数据库。 2. **数据导入**: 描述中提到的"source 你的文件路径"语句,是用来导入.sql文件中的SQL指令到当前激活的数据库。这些...
* 企业级数据库应用:HybridDB for PostgreSQL能够满足企业级数据库应用的需求,提供了高效、稳定、安全的数据存储和管理解决方案。 * 高性能计算:HybridDB for PostgreSQL能够满足高性能计算的需求,提供了高速的...
PostgreSQL是一款开源的对象-关系数据库系统(ORDBMS),它是一个功能强大的数据库管理系统,其特点包括支持复杂查询、外键、触发器、视图、事务完整性及存储过程等。PostgreSQL9.4手册是该数据库管理系统的一个版本...
3. **数据库设计**:论坛需要存储用户信息、帖子、评论等数据,MySQL、PostgreSQL等关系型数据库常被用作后端数据存储。为了提高查询性能,可能还会涉及到数据库索引、缓存策略等。 4. **用户认证与授权**:OAuth...
通用约定部分中,阿里云提供了格式说明样例,包括警示信息、警告、注意、说明等,旨在帮助用户快速了解和理解 HybridDB for PostgreSQL 的使用方法和注意事项。 快速开始部分中,阿里云提供了快速开始使用 HybridDB...
1. HybridDB for PostgreSQL的系统架构包括数据库服务器、存储服务器、应用服务器等组件。 2. 数据库服务器负责存储和管理数据,存储服务器负责存储数据,应用服务器负责提供应用程序接口。 安装部署 1. 本文档...
PostgreSQL是一种开源的关系型数据库管理系统(RDBMS),在全球范围内广泛用于企业级数据存储和管理。其特点包括强大的SQL支持、事务一致性、多版本并发控制(MVCC)以及丰富的数据类型。PostgreSQL以其稳定性和安全...
该数据库以.zip格式压缩包提供,解压后包含完整的数据库结构文档、SQL脚本(用于创建数据库、表、视图、索引及存储过程等)、示例数据以及可能的查询示例。用户可以根据文档指引,在支持的数据库管理系统(如MySQL、...
在PostgreSQL中构建图形数据模型,可以通过创建节点表(代表图中的节点)和边表(代表连接节点的边)来实现,同时存储边的属性以提供额外的信息。 TSQL(Transact-SQL)是SQL的一种方言,主要应用于Microsoft SQL ...
9. 安全管理:阿里云专有云企业版HybridDB for PostgreSQL运维指南中关于安全管理的内容,包括访问控制、身份验证、加密存储等。 10. 性能优化:阿里云专有云企业版HybridDB for PostgreSQL运维指南中关于性能优化...
4. **数据库管理**:项目可能使用MySQL、PostgreSQL、MongoDB等关系型或非关系型数据库存储数据,涉及到SQL查询、ORM(对象关系映射)工具如Hibernate、MyBatis等。 5. **服务器配置**:可能包含服务器部署相关的...
在开发Web应用程序时,数据库连接是至关重要的环节,它使得应用程序能够存储、检索和更新数据。本示例将深入探讨如何在Web项目中建立数据库连接,以实现高效的数据交互。 一、数据库连接基础 数据库连接是指Web...
3. 数据库:MySQL或PostgreSQL作为关系型数据库,存储用户信息和考勤数据。 4. 安全性:采用HTTPS协议确保数据传输的安全,同时使用JWT(JSON Web Tokens)进行用户身份验证。 四、未来发展 1. 教师管理:添加...
PostGIS是PostgreSQL的一个扩展,为数据库添加了处理地理和几何对象的能力,使得存储、查询和分析空间数据变得可能。下面将详细介绍这两个技术以及如何进行安装。 PostgreSQL,通常简称为Postgres,是一款强大的...
4. **数据库集成**:为了存储和检索位置数据,项目可能整合了数据库技术,如使用JDBC连接MySQL、PostgreSQL等关系型数据库,或者使用MongoDB等NoSQL数据库。 5. **GIS库**:为了地图显示和地理信息处理,GeoTracker...
4. **Qt Database**: 提供了与各种数据库系统(如SQLite、MySQL、PostgreSQL等)交互的API,支持SQL查询,方便进行数据存储和检索。 5. **Qt Multimedia**: 支持音频和视频的播放、录制,包括音视频的解码、编码和...
- **1.2 Architectural Fundamentals**:这部分概述了PostgreSQL的架构基础,包括服务器-客户端模型、数据存储结构、缓存机制等。 - **1.3 Creating a Database**:这里将指导用户如何创建新的数据库,并设置相应...
样例代码 本文档中描述SQL在各章中发布。 第十一章 环境建设技巧 本文档说明了如何使用VirtualBox构建PostgreSQL环境。以下文档介绍了如何使用Docker构建环境。 关于PostgreSQL环境构建 使用Docker准备PostgreSQL...
- 使用 `createlang` 命令安装 PL/pgSQL 过程语言扩展,这是 Postgis 所必需的,因为它支持创建和使用存储函数等功能。 - 示例命令行:`C:\Program Files\PostgreSQL\8.2\bin>createlang -U username plpgsql mydb...