PostgreSQL 数据库规则基础操作

ops/2025/2/5 16:25:00/

规则可以用于实现视图的更新、插入和删除操作,也可以用于复杂的查询改写。创建规则的基本语法如下:

CREATEREPLACE RULE 规则名 AS ON 事件TO 表名/视图名  WHERE 条件DO  ALSO或INSTEAD 新操作命令

其中,CREATEREPLACE表示创建或者修改规则,事件包括:SELECTINSERTUPDATEDELETEDO [ ALSO | INSTEAD ]指定规则的行为。ALSO 表示除了执行原操作外,还执行新操作命令;INSTEAD 表示用新操作命令替换原操作命令。例如,创建一个视图 v_stu,并定义一个 SELECT 规则:

CREATE VIEW v_stu AS SELECT * FROM student;
CREATE RULE "RETURN" AS ON SELECT TO v_stu
DO INSTEAD SELECT * FROM student; 

QGIS文档中提供了一个创建日志规则的案例:将 people 表中 phone_no 的每次更改记录到 people_log 表。

# 创建people_log 
create table people_log (name text, time timestamp default NOW()); 
# 创建一个规则,用于更新 people_log 表
create rule people_log as on update to peoplewhere NEW.phone_no <> OLD.phone_nodo insert into people_log values (OLD.name);
# 修改测试
update people set phone_no = '082 555 1234' where id = 2;
# 检查people是否更新
select * from people where id=2;
# 查看规则表
select * from people_log;
# 规则表内容name    |            time
------------+----------------------------Joe Bloggs | 2014-01-11 14:15:11.953141

http://www.ppmy.cn/ops/155918.html

相关文章

16.3.STM32F407ZGT6-CAN波特率配置

参考&#xff1a; https://blog.csdn.net/sunlight_vip/article/details/128639144 前言&#xff1a; 学习总结CAN的知识点&#xff1a; 1.can是什么&#xff0c;历史由来和背景 2.can的物理层&#xff0c;链路层 3.初始化的流程和关键点 4.波特率怎么设置 5.can id怎么过滤 6…

【学术投稿-2025年计算机视觉研究进展与应用国际学术会议 (ACVRA 2025)】从计算机基础到HTML开发:Web开发的第一步

会议官网&#xff1a;www.acvra.org 简介 2025年计算机视觉研究进展与应用&#xff08;ACVRA 2025&#xff09;将于2025年2月28-3月2日在中国广州召开&#xff0c;将汇聚世界各地的顶尖学者、研究人员和行业专家&#xff0c;聚焦计算机视觉领域的最新研究动态与应用成就。本次…

【web js逆向分析易盾滑块fp参数】逆向分析网易易盾滑块的 fp 参数,仅供学习交流

文章日期&#xff1a;2025.2.4 使用工具&#xff1a;Node.js 本章知识&#xff1a;分析易盾滑块的 fp 参数生成 version&#xff1a;2.28.0 v&#xff1a;v1.1 文章难度&#xff1a;简单 文章全程已做去敏处理&#xff01;&#xff01;&#xff01; 【需要做的可联系我】 AES…

kamailio-ACC、ACC_JSON 和 ACC_RADIUS 的区别

ACC、ACC_JSON 和 ACC_RADIUS 的区别 ACC、ACC_JSON 和 ACC_RADIUS 都是 Kamailio 中用于计费&#xff08;Accounting&#xff09;的模块&#xff0c;但它们的功能和后端支持有所不同。以下是它们的区别及案例说明&#xff1a; 1. ACC 模块 功能&#xff1a;ACC 模块是 Kamai…

深度学习 Pytorch 神经网络的学习

本节将从梯度下降法向外拓展&#xff0c;介绍更常用的优化算法&#xff0c;实现神经网络的学习和迭代。在本节课结束将完整实现一个神经网络训练的全流程。 对于像神经网络这样的复杂模型&#xff0c;可能会有数百个 w w w的存在&#xff0c;同时如果我们使用的是像交叉熵这样…

数据库开发常识(10.6)——SQL性能判断标准及索引误区(1)

10.6. 数据库开发常识 作为一名专业数据库开发人员&#xff0c;不但需要掌握数据库开发相关的语法和功能实现&#xff0c;还要掌握专业数据库开发的常识。这样&#xff0c;才能在保量完成工作任务的同时&#xff0c;也保质的完成工作任务&#xff0c;避免了为应用的日后维护埋…

7、怎么定义一个简单的自动化测试框架?

定义一个简单的自动化测试框架可以从需求理解、框架设计、核心模块实现、测试用例编写和集成执行等方面入手&#xff0c;以下为你详细介绍&#xff1a; 1. 明确框架需求和范围 确定测试类型&#xff1a;明确框架要支持的测试类型&#xff0c;如单元测试、接口测试、UI 测试等…

TGT-HC:一种用于无线时间敏感网络的时隙感知整形MAC方案的调研、设计与评估

论文标题 中文标题&#xff1a;TGT-HC&#xff1a;一种用于无线时间敏感网络的时隙感知整形MAC方案的调研、设计与评估 英文标题&#xff1a;Survey, Design and Evaluation of TGT-HC: A Time-Aware Shaper MAC for Wireless TSN 作者信息 Raymond J. Jayabal&#xff08;I…