`

Postgresql 函数、触发器写法

阅读更多

1、数据库环境

 

 

-- Table: 学生分数表

CREATE TABLE stu_score
(
  stuno serial NOT NULL,    --学生编号
  major character varying(16),   --专业课程
  score integer     --分数
)
WITH (
  OIDS=FALSE
);
ALTER TABLE stu_score OWNER TO postgres;




-- Table: 专业状态表,存储哪个专业有多少学生报名

CREATE TABLE major_stats
(
  major character varying(16),    --专业课程
  total_score integer,      --总分
  total_students integer   --学生总数
)
WITH (
  OIDS=FALSE
);
ALTER TABLE major_stats OWNER TO postgres;
 

2、函数、存储过程

 

 

create or replace function fun_stu_major()
returns trigger as 
	$BODY$
	DECLARE
	rec record;
	BEGIN
DELETE FROM major_stats;--将统计表里面的旧数据清空
FOR rec IN (SELECT major,sum(score) as total_score,count(*) as total_students 
FROM stu_score GROUP BY major) LOOP
INSERT INTO major_stats VALUES(rec.major,rec.total_score,rec.total_students);
END LOOP;
return NEW;
END;
$BODY$
  LANGUAGE 'plpgsql' VOLATILE
 

3、正式创建触发器trigger

 

 

create trigger tri_stu_major 
AFTER insert or update or delete
on stu_score 
for each row
execute procedure fun_stu_major()
 

 

 

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    PostgreSQl函数部分阅读笔记

    PostgreSQl函数部分阅读笔记 关于函数部分在PostgreSQL中的实现问题的解释 聚集函数

    PostgreSQL IF/IFNULL 函数 内核开发

    1. 博客:PostgreSQL的学习心得和知识总结(六十七)|语法级自上而下完美实现MySQL数据库的 IF函数和IFNULL函数 的实现方案

    postgresql 兼容 oracle 函数

    在数据库领域,Oracle和PostgreSQL都是非常知名的开源关系型数据库管理...然而,全面的兼容性不仅限于函数层面,还需要考虑SQL语法、存储过程、触发器、索引、分区表等方面,这需要根据实际情况进行深入研究和规划。

    【PostgreSQL】在DBeaver中实现序列、函数、视图、触发器设计

    博文中的测试数据库

    postgres-deno:Deno的PostgreSQL扩展:在PostgreSQL函数和触发器中运行Typescript

    【postgres-deno】是一个专为Deno设计的PostgreSQL扩展,它允许开发人员在PostgreSQL数据库中的函数和触发器中直接使用TypeScript代码。这个扩展是对于Node.js中广泛使用的`pg`模块的一个创新,旨在提供更现代、类型...

    postgresql-functions:自定义 PostgreSQL 函数和扩展

    PostgreSQL 函数 自定义 PostgreSQL 函数和扩展的存储库。 diff_tables 一个简单的 plpgsql 函数,它接受两个表名(通过regclass类型),构建一个比较它们的内容的查询,运行它,并返回一组具有不同行的类似 diff ...

    ptgo:Go中的PostgreSQL触发器

    Go中的PostgreSQL触发器ptgo是如何在Go中编写PostgreSQL触发器的示例。 分叉它并使用它来实现自己的触发器! 查看,以获取有关ptgo内部的描述。 今天就在Twitter上关注我们!

    DB2到GreenPlum/PostgreSQL的转换指南

    - **触发器**:DB2支持触发器,但在GreenPlum/PostgreSQL中,触发器的实现可能有所不同,特别是在触发条件和事件类型方面。 - **函数**:DB2和GreenPlum/PostgreSQL都支持函数,但在参数传递、返回类型等方面可能...

    触发器触发器触发器触发器

    在大多数关系型数据库系统中,如MySQL、Oracle、SQL Server和PostgreSQL,触发器可以分为以下几种类型: 1. **INSERT触发器**:当新的数据行被插入到表中时,这种触发器会被激活。 2. **UPDATE触发器**:当表中的...

    PostgreSQL简单函数创建

    本文将深入探讨如何在PostgreSQL中创建自定义函数,特别是在使用C语言编写动态库来实现这一功能时的简单示例。 首先,我们需要理解自定义函数在PostgreSQL中的作用。自定义函数允许用户根据特定需求扩展数据库的...

    postgresql 实现c language外部函数调用

    在PostgreSQL中,有时需要利用C语言来编写高性能或安全的关键功能,这可以通过创建外部函数实现。本教程将详细介绍如何在PostgreSQL中实现C语言外部函数的调用,包括环境配置、源代码编写、编译、创建函数以及测试...

    POSTGreSql函数

    PostGIS是一套用于PostgreSQL数据库的空间对象扩展。在地理信息系统(GIS)和空间数据库管理中,PostGIS扮演着重要角色,因为它提供了空间对象处理的能力,使得数据库可以执行复杂的地理空间数据分析。下面将详细...

    postgresql 字符串函数

    postgresql 字符串函数 收集各种字符串操作函数postgresql 字符串函数 收集各种字符串操作函数

    POSTGRESQL中文学习手册

    -postgresql-是一个功能强大且开源的关系数据库管理系统,本手册旨在为读者提供一个系统的学习指南,涵盖PostgreSQL的基本概念、数据类型、模式设计、表的定义、继承和分区、函数和操作符等方面的知识点。...

    PostgreSQL中文手册9.2

    PostgreSQL PostgreSQL PostgreSQL学习手册 学习手册 学习手册 (函数和操作符 函数和操作符 函数和操作符 <一>) 25 一、逻辑操作符: 一、逻辑操作符: 一、逻辑操作符: 一、逻辑操作符: .25 四、字符串函数和操作...

    postgresql整理,包含窗口函数

    PostgreSQL 数据类型和数学函数 PostgreSQL 是一个功能强大且广泛使用的开源关系数据库管理系统,本文将概述 PostgreSQL 的数据类型和数学函数。 一、数据类型 PostgreSQL 支持多种数据类型,包括整型、浮点型...

    Swift中的PostgreSQL函数-Swift开发

    PL / Swift PL / Swift允许您使用Swift编程语言为PostgreSQL数据库服务器编写自定义SQL函数和类型。 将Swift带到后端的后端一个小教程可以是PL / Swift PL / Swift允许您使用Swift编程语言为PostgreSQL数据库服务器...

    java链接postgresql

    在IT行业中,数据库是数据存储和管理的核心,而PostgreSQL是一种功能强大、开源的关系型数据库管理系统,被广泛应用于各种规模的应用程序。Java作为一款多平台的编程语言,提供了丰富的库和API来与数据库进行交互,...

    Navicat for PostgreSQL(PostgreSQL数据库管理)V11.0.10简体中文特别版

    它可以用于任何版本 7.5 或以上的 PostgreSQL 数据库服务器,并支持大部份 PostgreSQL最新版本的功能,包括触发器、函数、管理用户等。Navicat 的功能足以符合专业开发人员的所有需求,但是对 PostgreSQL 的新手来说...

    让postgresql支持存储过程(函数)的调试.doc

    在PostgreSQL数据库系统中,存储过程(也称为函数)是执行特定任务的预编译代码块,它们可以提高性能并简化复杂查询。然而,当这些过程或函数出现错误时,调试变得至关重要。本文将深入探讨如何使PostgreSQL支持存储...

Global site tag (gtag.js) - Google Analytics