-- Function: stats_remnant_outstore()
-- DROP FUNCTION stats_remnant_outstore();
--出库表
create table out_store(
oid serial primary key,
o_name text,
o_count integer,
o_time timestamp
)
--入库表
create table in_store(
iid serial primary key,
i_name text,
i_count integer,
i_time timestamp
)
--库存表
create table remnant_inventory(
rid serial primary key,
r_name text,
r_count integer,
r_time timestamp
)
--出库
CREATE OR REPLACE FUNCTION stats_remnant_out_store()
RETURNS trigger AS
$BODY$
declare
check_name varchar(40);
BEGIN
IF(TG_OP='INSERT') THEN
select r_name into check_name from remnant_inventory where r_name=NEW.o_name;
IF (check_name is null) THEN
raise exception'库存无该货物';
ELSE
IF (select r_count from remnant_inventory where r_name=NEW.o_name) >= NEW.o_count THEN
UPDATE remnant_inventory SET r_count=r_count - NEW.o_count,r_time=now() where r_name=NEW.o_name;
ELSE
raise exception'库存不足';
END IF;
END IF;
END IF;
IF(TG_OP='UPDATE') THEN
UPDATE remnant_inventory SET r_count=(r_count + OLD.o_count - NEW.o_count),r_time=now() WHERE r_name=NEW.o_name;
END IF;
return NULL;
END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
ALTER FUNCTION stats_remnant_out_store() OWNER TO postgres;
--入库
CREATE OR REPLACE FUNCTION stats_remnant_in_store()
RETURNS trigger AS
$BODY$
declare
check_name varchar(40);
BEGIN
IF(TG_OP='INSERT') THEN
select r_name into check_name from remnant_inventory where r_name=NEW.i_name;
IF(check_name is not null) THEN
UPDATE remnant_inventory SET r_count=r_count + NEW.i_count,r_time=now() where r_name=NEW.i_name;
ELSE
insert into remnant_inventory (r_name,r_count,r_time) values (NEW.i_name,NEW.i_count,now());
END IF;
END IF;
IF(TG_OP='UPDATE') THEN
UPDATE remnant_inventory SET r_count=(r_count - OLD.i_count + NEW.i_count),r_time=now() WHERE r_name=NEW.i_name;
END IF;
return NULL;
END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
ALTER FUNCTION stats_remnant_in_store() OWNER TO postgres;
分享到:
相关推荐
flink cdc postgres 数据同步 jar包,2021年最新版
postgressql-ver-11-win64
flink-sql-connector-postgres-cdc 2.5-SNAPSHOT
flink-connector-postgres-cdc-1.4.0.jar
"postgres_exporter-0.9.0.linux-amd64.tar.gz" 是一个针对PostgreSQL数据库监控的工具,名为Postgres Exporter。这个压缩包是专为Linux 64位(amd64)系统设计的,版本号为0.9.0。Postgres Exporter的主要任务是...
16新特性: 1.权限管理 2.逻辑复制增强功能 3.性能提升:并行查询方面的性能提升,比如允许FULL和RIGHT JION在并行模式下执行,支持SIMD 4.全面的监控功能
postgres-backup-local 基于 ,通过定期的循环备份将PostgresSQL备份到本地文件系统。 通过在POSTGRES_DB设置数据库名称(用逗号或空格分隔),从同一主机备份多个数据库。 支持以下Docker架构: linux/amd64 , ...
Matthew Schinkel在编写了一个审计应用程序,它基于此处使用的相同的postgres审计触发器。 但我想将其作为独立的django应用程序使用django.contrib.postgres。 django-audit-trigger也具有不同的机制来管理模型的...
而`laravel-postgres-extended-schema`则是针对PostgreSQL数据库的一个扩展,它为Laravel引入了更多PostgreSQL特有的数据库操作和功能。 首先,我们需要了解Laravel中的迁移(Migrations)。在Laravel中,迁移是...
python库。 资源全名:dbt_postgres-0.16.0b3-py3-none-any.whl
资源分类:Python库 所属语言:Python 资源全名:dbt_postgres-0.18.0b2-py3-none-any.whl 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
PostgresSQL是一个很优秀的开源数据库,并提供了针对空间数据的存扩展;这个PPT介绍了PostgresSQL数据库的基本情况
`postgres.client-0.3.2-py3-none-any.whl` 是一个针对Python的PostgreSQL数据库客户端库,版本号为0.3.2。这个轮子文件(wheel file)是一种预编译的Python软件包格式,它使得安装过程更为便捷,用户无需进行源代码...
与普通PostgreSQL相比,优化了每个数组元素在选择性估计期间的内存消耗。 修复了在运行pg_pathman时执行查询或使用规划器时可能出现的分段错误。pg_pathman没有注意到RangeTblEntry (RTE)结构中没有正确初始化的新...
sqoop连接Postgres SQL 的驱动包postgresql-9.3-1102-jdbc41.jar。 利用sqoop导出PostgresSQL的数据时所需的驱动包,只需要将该包放到hive或sqoop的lib目录下即可。
标题中的“PyPI 官网下载 | django-postgres-delete-cascade-2.0a1.tar.gz”表明这是一个从Python Package Index(PyPI)官方源获取的软件包,名为“django-postgres-delete-cascade”。这个软件包的版本是2.0a1,...
"postgres-15.2-1-windows-x64" 是 PostgreSQL 的一个针对 Windows 操作系统的64位版本,其版本号为15.2。这个压缩包包含了在 Windows 平台上安装和运行 PostgreSQL 所需的所有组件。 1. **PostgreSQL 版本**:15.2...
xxl-job-postgres 版本