zoukankan      html  css  js  c++  java
  • 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_test1v_test2类型均为视图。

     

     

     

     

     

     

  • 相关阅读:
    分治法解决寻找数组中最大最小值的问题
    bootstrap动画进度条
    关于bootstrap中css样式与自己设置的css样式相撞问题
    css引入外部字体
    清除浮动
    四叶玫瑰数
    水仙花数
    nginx 配置文件服务器
    springboot 自定义拦截器 防止恶意请求
    springboot 自定义异常
  • 原文地址:https://www.cnblogs.com/baisha/p/8407298.html
Copyright © 2011-2022 走看看