postgresql 视图
一、创建视图
create or replace view vw_users as select * from users;
二、通过定义规则来更新视图
create rule vw_users_upd as on update to vw_users do instead update users set user_email=New.user_email;
update vw_users set user_email='zhangsan@163.com' where id=1;
注意,经过测试在9.5以上的版本可以直接使用update更新,不需要创建规则,9.2版本是需要的。
三、instead of 和before/after的区别,
1、insert of只能处理行级别的触发器,例如对视图的增、删、改等,例如
create or replace function vw_users_insert_trigger()
returns trigger as $$
begin
insert into users values(new.id,new.user_name,new.password,new.user_email,new.user_mark);
return null;
end;
$$
language plpgsql;
create or replace trigger insert_vw_users_trigger
instead of insert on vw_users
for each row execute procedure vw_users_insert_trigger();
2、before/after是处理语句级别的触发器,示例可以参考触发器文章
postgresql 视图的更多相关文章
- 【odoo14】第八章、服务侧开发-进阶
本章代码位于作为GITHUB库 https://github.com/PacktPublishing/Odoo-14-Development-Cookbook-Fourth-Edition 在第五章( ...
- PGSQL基础语句汇总
一.pgsql里面的数据类型不再介绍:https://www.runoob.com/postgresql/postgresql-data-type.html 二.常用基本语句 2.1.CREATE D ...
- postgreSQL数据库(索引、视图)
索引的含义与特点 索引是一个单独的.存储在磁盘上的数据库结构,它们包含对数据所有记录的引用指针,postgresql列类型都可以被索引,对相关列索引是提高查询操作效率的最佳途径.例如,查询select ...
- [转]PostgreSQL教程(十六):系统视图详解
这篇文章主要介绍了PostgreSQL教程(十六):系统视图详解,本文讲解了pg_tables.pg_indexes.pg_views.pg_user.pg_roles.pg_rules.pg_set ...
- sql:sql server,MySQL,PostgreSQL的表,视图,存储过程结构查询
sql server 2005: --SQL SERVER 2005 生成代码需要知道的SQL语句 use LibrarySystem --查询当前数据库所有表和其的主键字段,字段类型,长度,是否为空 ...
- PostgreSQL物化视图(materialized view)
1.创建视图 CREATE MATERIALIZED VIEW [ IF NOT EXISTS ] table_name [ (column_name [, ...] ) ] [ WITH ( sto ...
- PostgreSQL 涉及复杂视图查询的优化案例
一.前言 对于含有union , group by 等的视图,我们称之为复杂视图. 这类的视图会影响优化器对于视图的提升,也就是视图无法与父查询进行合并,从而影响访问路径.连接方法.连接顺序等.本文通 ...
- PostgreSQL查看表、表索引、视图、表结构
-- 表索引select * from pg_indexes where tablename='person_wechat_label';select * from pg_statio_all_ind ...
- postgresql逻辑结构--视图(五)
定义 一.创建视图 1.语法 create [or replace ] [ temp | temporary ] view name [(column_name [,...])] as que ...
随机推荐
- 【Unity3D游戏开发】基础知识之Tags和Layers (三二)[转]
Tags和Layers分别表示是Unity引擎里面的标签和层,他们都是用来对GameObject进行标识的属性,Tags常用于单个GameObject,Layers常用于一组的GameObject.添 ...
- 正则表达式(/[^0-9]/g,'')中的"/g"是什么意思 ?
正则表达式(/[^0-9]/g,'')中的"/g"是什么意思 ? 表达式加上参数g之后,表明可以进行全局匹配,注意这里“可以”的含义.我们详细叙述: 1)对于表达式对象的e ...
- 利用MDK4中的逻辑分析仪分析IO口的PWM波
1.先设置软件仿真 ,可参看STM32不完全手册的2.4的软件仿真这一章 (原文件名:1.jpg) Example functionality: ...
- Socket通信常用方法
使用tcp协议,链接服务器的方法 /// <summary> /// 连接使用tcp协议的服务端 /// </summary> /// <param name=" ...
- 详解 ASP.NET异步
在前文中,介绍了.NET下的多种异步的形式,在WEB程序中,天生就是多线程的,因此使用异步应该更为谨慎.本文将着重展开ASP.NET中的异步. [注意]本文中提到的异步指的是服务器端异步,而非客户端异 ...
- [转载] ORMs under the hood
原文: http://www.vertabelo.com/blog/technical-articles/orms-under-the-hood It often happens that if so ...
- tracert命令详解
一.windows.Linux系统下 tracert ip/网站域名 二.mac traceroute IP/域名 ---------2016-10-10 15:29:07-- source:[1]t ...
- poj3714Raid(平面最近点对)
链接 模板 稍加一点标记 模板 #include <iostream> #include<cstdio> #include<cstring> #include< ...
- Android 自定义对话框
Android实现自定义对话框效果: 核心代码: package com.example.diydialog; import android.os.Bundle; import android.app ...
- 集群--LVS的DR模型配置
1.查看内核是否有IPVS内核模块 grep -i 'ip_vs' /boot/config-2.6.32-431.el6.x86_64