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 ...
随机推荐
- \r与\n有何区别,编码的时候应该如何使用
\r与\n有何区别,编码的时候应该如何使用 区别: \r: 全称:carriage return (carriage是“字车”的意思,打印机上的一个部件) 简称:return 缩写:r ASCII码: ...
- POSTMAN中各种请求方式的区别
1.form-data: 就是http请求中的multipart/form-data,它会将表单的数据处理为一条消息,以标签为单元,用分隔符分开.既可以上传键值对,也可以上传文件.当上传的字段是文件 ...
- HDU 2222 Keywords Search(查询关键字)
HDU 2222 Keywords Search(查询关键字) Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/131072 K ...
- GridSplitter的一个简单例子
GridSplitter可以在Grid布局中根据鼠标发生移动(可拖拽的分隔栏) XAML: <Window x:Class="Layout.MainWindow" xmlns ...
- 一个异常与Android Studio系列教程参考
由于编译过程中遇到了错误:
- [转]-用Gradle 构建你的android程序
出处:http://www.cnblogs.com/youxilua 前言 android gradle 的插件终于把混淆代码的task集成进去了,加上最近,android studio 用的是gr ...
- iOS - UISwitch
前言 NS_CLASS_AVAILABLE_IOS(2_0) __TVOS_PROHIBITED @interface UISwitch : UIControl <NSCoding> @a ...
- default(T)的含义
default(T)是泛型中初始化的用法.因为对于泛型T你不知道是值类型还是引用类型,所以传参数是可能会出错.这里就要用到default(T). T t=default(T),就是初始化,值类型的话, ...
- 对于syncedmen类的代码分析
对于数据在cpu与GPU之间同步的问题,caffe中用syncedMemory这个类来解 决:在GPU模式下,并且使用CUDA时,可以用CaffeMallocHost函数与CaffeFreeHost函 ...
- activity去标题栏操作&保留高版本主题
方式一:每个类都需要去添加此代码 在setContentView(R.layout.activity_splash); 前设置以下代码 requestWindowFeature(Window.FEAT ...