postgresql的规则系统
" class="wiz-editor-body wiz-readonly" contenteditable="false">
Postgresql提供了一种规则系统。规则系统是查询重写规则的系统。从使用上说,规则系统的一些功能可以通过函数和触发器实现,但规则系统与触发器完全不同,它是在执行前把用户发过来的SQL通过内部的规则定义改变成另一个SQL后再执行的一种方式。
规则的基本语法如下:
CREATE RULE 规则名 AS
ON {SELECT
| INSERT | UPDATE |
DELETE}
TO 表名 [WHERE 规则条件]
DO [INSTEAD] {NOTHING | 命令 | (命令, 命令...)}
在PostgreSQL中,视图实际上是通过规则实现的,下面举例说明:
--创建视图v_test1
mydb=# create view v_test1 as
select * from t1;
CREATE VIEW
--创建规则之前,先创建规则使用的表
mydb=# create table v_test2(id1
int);
CREATE TABLE
mydb=# create rule
"_RETURN" as on select to v_test2 do instead select * from t1;
CREATE RULE
规则的名称必须写成"_RETURN",否则报如下错误
ERROR: view rule for "v_test2" must be
named "_RETURN"
创建后的结果如下所示,可以看到v_test1、v_test2类型均为视图。

postgresql的规则系统的更多相关文章
- Postgresql的隐藏系统列
转自 https://www.2cto.com/database/201206/137301.html Postgresql的隐藏系统列 和oracle数据库一样,postgresql也有自身 ...
- [转]PostgreSQL教程:系统表详解
这篇文章主要介绍了PostgreSQL教程(十五):系统表详解,本文讲解了pg_class.pg_attribute.pg_attrdef.pg_authid.pg_auth_members.pg_c ...
- 开源战棋 SLG 游戏框架设计思考(二)规则系统要考虑的因素
游戏对象 1. 地块方格 地形:山脉.丘陵.乔木林.灌木林.平原.河流.湖泊.海洋.雪原.沼泽.沙漠.暗礁.滩涂.岛屿等等(需完善) 设施:铁路.公路.桥梁.机场.城市.村庄.岸防炮.要塞.废墟等等( ...
- PostgreSQL 系统的基本体系结构
PostgreSQL 使用客户机/服务器(C/S)的模式提供服务,一个PostgreSQL会话由下列相关的进程(程序)组成: (1)一个服务器端进程.该进程管理数据库文件,接受客户端与数据库的连接,且 ...
- 《A Tour of PostgreSQL Internals》学习笔记——系统表和数据类型
上周末学习了<A Tour of PostgreSQL Internals>的第一部分(View 1),今天我们继续打开书本,继续View 2 部分. View 2 Postgresql的 ...
- PostgreSQL进程和内存结构
PostgreSQL数据库启动时,会先启动一个叫做Postmaster的主进程,还会fork一些辅助子进程,这些辅助子进程各自负责一部分功能,辅助子进程分类如下: $ ps -ef | grep po ...
- Mysql 和 Postgresql(PGSQL) 对比
Mysql 和 Postgresql(PGSQL) 对比 转载自:http://www.oschina.net/question/96003_13994 PostgreSQL与MySQL比较 MySQ ...
- 《A Tour of PostgreSQL Internals》学习笔记——查询处理分析
终于要迎来postgresql的<A Tour of PostgreSQL Internals>系列的最后一篇了.学习是不能拖延的事儿,越拖延事情越多.不废话,一起来看看吧~ ...
- PostgreSQL与MySQL的区别收集(转)
特性 MySQL PostgreSQL 实例 通过执行 MySQL 命令(mysqld)启动实例.一个实例可以管理一个或多个数据库.一台服务器可以运行多个 mysqld 实例.一个实例管理器可以监视 ...
随机推荐
- LG1440 求 m 区间内的最小值
题目描述 一个含有 \(n\) 项的数列 (\(n≤ 2000000\)),求出每一项前的 \(m\) 个数到它这个区间内的最小值.若前面的数不足 \(m\) 项则从第 \(1\) 个数开始,若前面没 ...
- 微博API的申请
https://segmentfault.com/a/1190000012548487
- 初识 ❤ TensorFlow |【一见倾心】
说明
- tomcat正常启动输入localhost:8080显示404错误
找了半天才解决. 看这个贴子: https://www.cnblogs.com/lovelanglangyou/p/7410937.html 简而言之: 需要修改eclipse中的server配置,e ...
- USACO 6.1 章节
Postal Vans 题目大意 4*n的网格,要经过所有点的有向有环,不重复经过点的路径总数 n<=1000 题解 显然 插头dp 以4为切面 问题是,会发现 超精度 解决呢要么实现高精度,要 ...
- Webshell免杀
过狗过D盾 <?php class me{ public $a = ''; function __destruct(){ assert("$this->a"); }}$ ...
- springCloud的使用06-----分布式配置
1 分布式配置中心的搭建 1.1 在git仓库中创建配置文件 1.2 创建springboot项目引入相应jar依赖 <project xmlns="http://maven.apac ...
- LOGO有哪几种常规设计思路?
Logo设计的思路多种多样,但是我个人从Logo设计的历史上,大致可以归纳出五种常规思路,思路的名称是自己编的,仅供大家参考.而列举的这些思路背后,都是有着各自的时代背景的. 先从历史最悠久的一种设计 ...
- C#编程--第三天
语句 语句是指程序命令,都是按照顺序执行的.语句在程序中的执行顺序称之为"控制流"或"执行流".根据程序对运行时所收到的输入的响应,在程序每次运行时程序流可能有 ...
- H2数据库做单测数据库时踩到的坑
H2数据库用来做单测数据库,可以自定义初始化数据,不用担心数据库内容更改造成单测跑不过问题,不过H2数据库跟实际使用的Mysql还是有一定区别. 1. H2数据库不支持Mysql的批量更新功能,支持批 ...