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类型均为视图。

1003890-20180202222639343-453380934.png

 

 

 

 

 

 

转载于:https://www.cnblogs.com/baisha/p/8407298.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值