CREATE OR REPLACE FUNCTION "public"."tradegift3(src_id int4, dst_id int4, gift_id int4, gift_count i"(IN src_id int4, IN dst_id int4, IN gift_id int4, IN gift_count int4, IN gift_type int4, IN total_out int4, IN total_in int4, IN trade_type int4, IN room_id int4, OUT ret_sucess int4, OUT src_nk int4, OUT src_nb int4, OUT dst_nk int4, OUT dst_nb int4, OUT dst_nchestnum int4) RETURNS "pg_catalog"."record" AS $BODY$ DECLARE r0 RECORD; todaycost integer; bnewchest integer; today date; BEGIN src_nk:=0; src_nb:=0; dst_nk:=0; dst_nb:=0; dst_nchestnum:=0; todaycost:=0; bnewchest:=0; select now() as val into r0; select now() into today; update tbuseraccount set nk=nk-total_out where nuserid=src_id and nk>=total_out; if FOUND then if trade_type=1 then update tbuseraccount set nb=nb+total_in where nuserid=dst_id; else update tbuseraccount set nk=nk+total_in where nuserid=dst_id; end if; insert into tbusertradelog(nuserid,nbuddyid,ngiftid,ncount,dtime,ngifttype,nvcbid,nusermoney,nbuddymoney) VALUES(src_id,dst_id,gift_id,gift_count,r0.val,gift_type,room_id,total_out,total_in); select ncost into todaycost from tbusertodaycost where nuserid=src_id and ddate=today; if FOUND then todaycost := todaycost + total_out; update tbusertodaycost set ncost=ncost + total_out where nuserid=src_id; else todaycost := total_out; update tbusertodaycost set ncost=total_out, ddate=today where nuserid=src_id; if not FOUND then insert into tbusertodaycost(nuserid,ncost,ddate) values(src_id,total_out,today); end if; end if; if todaycost >= 10000000 then bnewchest :=1; update tbusertodaycost set ncost=0 where nuserid=src_id; update tbuseraccount set nchestnum=nchestnum+1 where nuserid=src_id; select nchestnum into dst_nchestnum from tbuseraccount where nuserid=src_id; end if; select nk,nb from tbuseraccount where nuserid=src_id into src_nk,src_nb; select nk,nb from tbuseraccount where nuserid=dst_id into dst_nk,dst_nb; ret_sucess=0; if bnewchest=1 then ret_sucess=1; end if; RETURN; end if; ret_sucess=-1; RETURN; END; $BODY$ LANGUAGE 'plpgsql' VOLATILE COST 100 ; ALTER FUNCTION "public"."tradegift3(src_id int4, dst_id int4, gift_id int4, gift_count i"(IN src_id int4, IN dst_id int4, IN gift_id int4, IN gift_count int4, IN gift_type int4, IN total_out int4, IN total_in int4, IN trade_type int4, IN room_id int4, OUT ret_sucess int4, OUT src_nk int4, OUT src_nb int4, OUT dst_nk int4, OUT dst_nb int4, OUT dst_nchestnum int4) OWNER TO "ksbox";
相关推荐
PostgreSQL中文学习手册 PostgreSQL PostgreSQL PostgreSQL学习手册 学习手册 学习手册 (数据表 数据表 ) 4 一、表的定义: 一、表的定义: 一、表的定义: . 4 PostgreSQL PostgreSQL PostgreSQL学习手册 学习手册...
### DB2到GreenPlum/PostgreSQL的转换指南 #### 1. 引言 ##### 1.1 目的 本指南旨在帮助用户理解从DB2迁移到GreenPlum或PostgreSQL过程中所涉及的关键技术和注意事项。由于这两种数据库系统之间存在显著差异,因此...
PostgreSQL(postgresql-14.1.tar.bz2) PostgreSQL是一种特性非常齐全的自由软件的对象-关系型数据库管理系统(ORDBMS),是以加州大学计算机系开发的POSTGRES,4.2版本为基础的对象关系型数据库管理系统。...
PostgreSQL(postgresql-14.1.tar.gz) PostgreSQL是一种特性非常齐全的自由软件的对象-关系型数据库管理系统(ORDBMS),是以加州大学计算机系开发的POSTGRES,4.2版本为基础的对象关系型数据库管理系统。POSTGRES...
PostgreSQL(postgresql-13.5.tar.gz) PostgreSQL是一种特性非常齐全的自由软件的对象-关系型数据库管理系统(ORDBMS),是以加州大学计算机系开发的POSTGRES,4.2版本为基础的对象关系型数据库管理系统。POSTGRES...
PostgreSQL(postgresql-13.5.tar.bz2) PostgreSQL是一种特性非常齐全的自由软件的对象-关系型数据库管理系统(ORDBMS),是以加州大学计算机系开发的POSTGRES,4.2版本为基础的对象关系型数据库管理系统。...
### PostgreSQL离线安装详解 #### 一、简介 PostgreSQL是一款功能强大且全面的开源对象-关系型数据库管理系统(ORDBMS)。它基于加州大学伯克利分校开发的POSTGRES 4.2版本构建而成,引入了许多先进的概念和技术,...
**PostgreSQL 10 安装指南** PostgreSQL 是一款强大的开源关系型数据库管理系统,具有高度的稳定性和可扩展性,被广泛应用于各种规模的企业和项目。本文将详细介绍如何使用提供的 PostgreSQL-10 安装包进行安装,...
PostgreSQL是一种开源关系型数据库管理系统(RDBMS),它的版本8.2.3是该系统的一个重要里程碑。这个版本在2006年发布,带来了许多改进和新特性,使得PostgreSQL在当时更加稳定和功能强大。对于Windows 8用户来说,...
### PostGreSQL在Centos 7.9上的安装与部署 #### 一、引言 在开始学习任何数据库之前,最重要的第一步就是安装部署一个可供学习和测试的环境。选择一个在业界广泛使用的操作系统版本,以及一个成熟稳定的数据库...
PostgreSQL是一种功能强大的开源关系型数据库管理系统,以其稳定性和可靠性而受到全球开发者的广泛赞誉。在标题和描述中提到的“postgresql 12、15离线安装包”指的是为这两个版本提供的安装程序,适用于没有互联网...
PostgreSQL是一种开源的对象关系型数据库管理系统(ORDBMS),它在Ubuntu操作系统上广泛使用,尤其在需要稳定性和高性能的环境中。Ubuntu离线安装版的PostgreSQL适用于那些没有互联网连接或者网络带宽有限的环境,...
Navicat for PostgreSQL是一套专为PostgreSQL设计的强大数据库管理及开发工具。它可以用于任何版本 7.5 或以上的 PostgreSQL 数据库服务器,并支持大部份 PostgreSQL最新版本的功能,包括触发器、函数、管理用户等。...
PostgreSQL(postgresql-13.5-1-windows-x64.exe)适用于Windows x86-64 PostgreSQL是一种特性非常齐全的自由软件的对象-关系型数据库管理系统(ORDBMS),是以加州大学计算机系开发的POSTGRES,4.2版本为基础的...
PostgreSQL(postgresql-14.2.tar.gz),适用于Linux系统:PostgreSQL是一种特性非常齐全的自由软件的对象-关系型数据库管理系统(ORDBMS),是以加州大学计算机系开发的POSTGRES,4.2版本为基础的对象关系型数据库...
postgresql-42.5.0.jar是Java上的一个驱动程序,用于连接PostgreSQL数据库并与其进行交互。它可以让Java程序员方便地使用PostgreSQL数据库,并提供了许多功能和工具,使程序员可以编写高效、稳定和高性能的应用程序...
在Java编程中,连接到PostgreSQL数据库通常需要特定的驱动程序,这个驱动程序通常是以JAR(Java Archive)文件的形式存在。"连接postgresql数据库需要的jar包"指的是用于建立Java应用程序与PostgreSQL数据库之间通信...
PostgreSQL是一种开源的对象关系型数据库管理系统(ORDBMS),它以其强大的功能、高度的稳定性以及对ACID(原子性、一致性、隔离性、持久性)事务的支持而受到广大开发者的欢迎。离线安装包通常是为了在没有网络连接...
【PostgreSQL 12主从集群安装】 在搭建PostgreSQL 12主从集群时,首先需要理解主从复制的概念。主从复制是数据库高可用性的一种常见解决方案,它允许数据从一个节点(主节点)实时同步到另一个或多个节点(从节点)...
【PostgreSQL】是一种高度成熟且功能丰富的开源(对象-关系型)数据库管理系统,它在业界被认为是主流数据库之一,尤其在企业级应用中受到广泛青睐。PostgreSQL 的特性包括支持复杂查询、事务处理、多版本并发控制...