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 实例.一个实例管理器可以监视 ...
随机推荐
- JS基础入门篇(四)—this的使用,模拟单选框,选项卡和复选框
1.this的使用 this js中的关键字 js内部已经定义好了,可以不声明 直接使用 this的指向问题 1. 在函数外部使用 this指向的是window 2. 在函数内部使用 有名函数 直接调 ...
- MySQL的limit分页性能测试加优化
日常我们分页时会用到MySQL的limit字段去处理,那么使用limit时,有什么需要优化的地方吗?我们来做一个试验来看看limit的效率问题:环境:CentOS 6 & MySQL 5.71 ...
- Windwos 08R2_DNS+AD安装图文
目录 目录 前言 软件环境 DNS域名服务器 配置DNS服务器 AD活动目录 配置AD域 前言 Windows 2008 R2平台下搭建AD(Active Directory)和DNS(Domain ...
- 关于ExtJS对javascript中的Object的扩展
关于ExtJS对javascript中的Object的扩展,可以参考其帮助文档,文档下载地址:http://download.csdn.net/detail/z1137730824/7748893 下 ...
- C++中函数模板的深入理解
1,函数模板深入理解: 1,编译器从函数模板通过具体类型产生不同的函数: 1,模板就是模子,通过这个模子可以产生很多的实物: 2,函数模板就是编译器用来产生具体函数的模子: 2,编译器会对函数模板进行 ...
- 如何使用Charles对手机进行抓包
步骤:(如下为ios步骤,安卓类似) 1)Mac安装Charles,保证手机与电脑在同一wifi(若没有WiFi时,Mac.MacBook,etc 自带热点功能) 2)在手机当前连接的wifi设置里配 ...
- vue证明题四,使用组件
vue的开发方式,基本上是以组件为主的,至于为啥,我也不好去论述,网上看别人的 所谓渐进式开发,也是源自于单页面应用这一说,而注册一个域名以后,指定了首页,爬虫爬取链接都是从首页开始的 如果一个网址, ...
- 最新版WinRAR5.61去广告代码教程分享(仅供学习交流)
最新版WinRAR5.61去广告代码教程分享(仅供学习交流) 第一步:到WinRAR官网www.rarlab.com下载自己需要的版本,选择Chinese Simplified 64bit 安装即可. ...
- 2019HDU多校第三场 Distribution of books 二分 + DP
题意:给你一个序列,你可以选择序列的一个前缀,把前缀分成k个连续的部分,要求这k个部分的区间和的最大值尽量的小,问这个最小的最大值是多少? 思路:首先看到最大值的最小值,容易想到二分.对于每个二分值m ...
- brew install ''package卡在Updating Homebrew
关闭自动更新: export HOMEBREW_NO_AUTO_UPDATE=true