warehouse_db=# create table tab_view(emp_id int not null,emp_name varchar(10),emp_city varchar(10));
CREATE TABLE
warehouse_db=# insert into tab_view values (1,'Adam','Chicago');
INSERT 0 1
warehouse_db=# insert into tab_view values (2,'John','Miami'),(3,'Smith','Dallas');
INSERT 0 2
warehouse_db=# create view view_select as select * from tab_view ;
CREATE VIEW

warehouse_db=# create rule view_select_insert as on insert to view_select
do instead (insert into tab_view values (new.emp_id,new.emp_name,new.emp_city));
CREATE RULE
warehouse_db=# select rulename from pg_rewrite where rulename='view_select_insert';
rulename
--------------------
view_select_insert
(1 row)

warehouse_db=# insert into view_select values (4,'Gary','Houston');
INSERT 0 1
warehouse_db=# select * from tab_view ;
emp_id | emp_name | emp_city
--------+----------+----------
1 | Adam | Chicago
2 | John | Miami
3 | Smith | Dallas
4 | Gary | Houston
(4 rows)
warehouse_db=# select * from view_select ;
emp_id | emp_name | emp_city
--------+----------+----------
1 | Adam | Chicago
2 | John | Miami
3 | Smith | Dallas
4 | Gary | Houston
(4 rows)
warehouse_db=# select * from warehouse_tb1 ;
warehouse_id | warehouse_name | year_created | street_address | city | state | zip
--------------+----------------+--------------+----------------+------+-------+-----
(0 rows)

warehouse_db=# create view view_warehouse_tb1 as select * from warehouse_tb1 ;
CREATE VIEW

warehouse_db=# select * from view_warehouse_tb1 ;
warehouse_id | warehouse_name | year_created | street_address | city | state | zip
--------------+----------------+--------------+----------------+------+-------+-----
(0 rows)
warehouse_db=# select * from history ;
history_id | date | amount | data | customer_id | warehouse_id
------------+------+--------+------+-------------+--------------
(0 rows)
warehouse_db=# create view view_multiple_tables as select warehouse_name,year_created,city,amount,date
from warehouse_tb1 ,history where warehouse_tb1.warehouse_id = history.warehouse_id;
CREATE VIEW
warehouse_db=# select * from view_multiple_tables ;
warehouse_name | year_created | city | amount | date
----------------+--------------+------+--------+------
(0 rows)
warehouse_db=# insert into warehouse_tb1 (warehouse_id ,warehouse_name,year_created,street_address,
city,state,zip)values (6,'Jackson & Co',2010,'lincoln Road','Buffalo','NY',4331);
INSERT 0 1
warehouse_db=# insert into warehouse_tb1 (warehouse_id ,warehouse_name,year_created,street_address,
city,state,zip)values (2,'Nicon & Co',2010,'Bush Road','Washington','NY',4331);
INSERT 0 1
warehouse_db=# insert into history (history_id ,date,amount,data,customer_id,warehouse_id)
warehouse_db-# values (1,'Jul--10-14',1234,'thedata',1,6);
INSERT 0 1

warehouse_db=# insert into history (history_id ,date,amount,data,customer_id,warehouse_id)
values (2,'Jul-10-15',2345,'thedatasecond',2,2);
INSERT 0 1
warehouse_db=# select * from view_multiple_tables ;
warehouse_name | year_created | city | amount | date
----------------+--------------+------------+--------+---------------------
Jackson & Co | 2010 | Buffalo | 1234 | 2014-07-10 00:00:00
Nicon & Co | 2010 | Washington | 2345 | 2015-07-10 00:00:00
(2 rows)

warehouse_db=# \dv
List of relations
Schema | Name | Type | Owner
--------+----------------------+------+----------
public | view_multiple_tables | view | postgres
public | view_select | view | postgres
public | view_warehouse_tb1 | view | postgres
(3 rows)

warehouse_db=# drop view view_warehouse_tb1 ;
DROP VIEW
warehouse_db=# \dv
List of relations
Schema | Name | Type | Owner
--------+----------------------+------+----------
public | view_multiple_tables | view | postgres
public | view_select | view | postgres
(2 rows)
warehouse_db=# \h create view
Command: CREATE VIEW
Description: define a new view
Syntax:
CREATE [ OR REPLACE ] [ TEMP | TEMPORARY ] [ RECURSIVE ] VIEW name [ ( column_name [, ...] ) ]
[ WITH ( view_option_name [= view_option_value] [, ... ] ) ]
AS query
[ WITH [ CASCADED | LOCAL ] CHECK OPTION ]

warehouse_db=# \h create materialized view
Command: CREATE MATERIALIZED VIEW
Description: define a new materialized view
Syntax:
CREATE MATERIALIZED VIEW table_name
[ (column_name [, ...] ) ]
[ WITH ( storage_parameter [= value] [, ... ] ) ]
[ TABLESPACE tablespace_name ]
AS query
[ WITH [ NO ] DATA ]
warehouse_db=# create materialized view mat_view as select * from warehouse_tb1 with no data;
SELECT 0
warehouse_db=# select * from mat_view ;
ERROR: materialized view "mat_view" has not been populated
HINT: Use the REFRESH MATERIALIZED VIEW command.
warehouse_db=# refresh materialized view mat_view ;
REFRESH MATERIALIZED VIEW
warehouse_db=# select * from mat_view ;
warehouse_id | warehouse_name | year_created | street_address | city | state | zip
--------------+----------------+--------------+----------------+------------+-------+------
6 | Jackson & Co | 2010 | lincoln Road | Buffalo | NY | 4331
2 | Nicon & Co | 2010 | Bush Road | Washington | NY | 4331
7 | GMC | 2011 | getsby Road | Fulton | NY | 4332
8 | Ford | 2012 | fisa Road | Elmira | NY | 4333
(4 rows)
warehouse_db=# drop materialized view mat_view ;
DROP MATERIALIZED VIEW

PostgreSQL rule view materialized view examples的更多相关文章

  1. PostgreSQL物化视图(materialized view)

    1.创建视图 CREATE MATERIALIZED VIEW [ IF NOT EXISTS ] table_name [ (column_name [, ...] ) ] [ WITH ( sto ...

  2. Postgresql - MATERIALIZED VIEW

    MATERIALIZED VIEWPG 9.3 版本之后开始支持物化视图.View 视图:虚拟,不存在实际的数据,在查询视图的时候其实是对视图内的表进行查询操作. 物化视图:实际存在,将数据存成一张表 ...

  3. [terry笔记]物化视图 materialized view基础学习

    一.物化视图定义摘录:     物化视图是包括一个查询结果的数据库对像(由系统实现定期刷新数据),物化视图不是在使用时才读取,而是预先计算并保存表连接或聚集等耗时较多的操作结果,这样在查询时大大提高了 ...

  4. MATERIALIZED VIEW

    Oracle的实体化视图提供了强大的功能,可以用在不同的环境中,实体化视图和表一样可以直接进行查询.实体化视图可以基于分区表,实体化视图本身也可以分区. 主要用于预先计算并保存表连接或聚集等耗时较多的 ...

  5. Advanced Replication同步复制实验(基于Trigger&基于Materialized View)

    1. 高级复制和流复制介绍 1.1 高级复制(Advanced Replication) 高级复制也称为对称复制,分为多主体站点复制(Multiple Master Rplication).物化视图站 ...

  6. Materialized View in Oracle - Concepts and Architecture

    List all of MV inoracle: select owner, query, query_len from dba_mviews See content of aMV: select * ...

  7. 物化视图(materialized view) 实现数据迁移、数据定时同步

    近日公司有一个9i 的Oracle数据库,运行效率低下.想要将其升级到11G. 但是升级之前 要将数据进行同步,好在表不是很多.只有三张表.业务压力也不大,就想到了使用物 化视图的方式将数据同步过来. ...

  8. Materialized View模式

    Materialized-View模式是在要求数据格式不利于查询操作的情况下,根据多个数据仓库的数据生成预生成的视图的一种模式.这种模式可以帮助支持高效的查询和数据提取,提高应用程序的性能. 问题 在 ...

  9. ora-904 rowid create materialized view

    create materialized view t_v asselect t1.*,1 as marker,rowid from t1 t1union allselect t2.*,2 as mar ...

随机推荐

  1. HTML: margin重疊現象的說明

    2句話: ①相鄰的兩個普通元素,上下邊距,不是簡單的相加,而是取邊距較大的元素(若相邻的两个普通兄弟元素,它们的margin 值是一样的,则各取两个元素的margin 值的一半.)②关系为父子的两个d ...

  2. C++ char*,const char*,string的相互转换

    1. string转const char* string s ="abc";constchar* c_s = s.c_str(); 2. const char*转string   ...

  3. 在MyEclipse下创建Java Web项目 入门(图文并茂)经典教程

    http://jijiaa12345.iteye.com/blog/1739754 在MyEclipse下创建Java Web项目 入门(图文并茂)经典教程 本文是一篇在Myeclipse下构建Jav ...

  4. FTS抓包看蓝牙验证的过程

    1.概述    在进行蓝牙设备的连接时,为了保护个人隐私和数据保密的需要,需要进行验证.   2.一些Frame Frame74:本地发送Authentication requset command ...

  5. Qt拖拽界面 (*.ui) 缩放问题及解决办法(在最顶层放一个Layout)

    问题 使用Qt Designer 设计的界面,在缩放的时候不能随着主窗口一起缩放. 解决办法 之前遇到这个问题的时候,都是直接重写resizeEvent接口来实现的,在自动生成的Ui_Widget或U ...

  6. Github简明教程(转)

    原文地址 : http://wuyuans.com/2012/05/github-simple-tutorial/ github是一个基于git的代码托管平台,付费用户可以建私人仓库,我们一般的免费用 ...

  7. 几个简单的html+css+js题目

    1.页面中有一图片,请在下划线处添加代码能够实现隐藏该图片的功能 <img id="pic" src="door.jpg" width="200 ...

  8. 读propert文件

    PropertiesUtil.java package utils; import java.io.BufferedInputStream; import java.io.FileInputStrea ...

  9. C#中jQuery Ajax实例(二)

    上一篇写了一个简单的Ajax异步程序,这一次同样是简单的程序,只不过这次先把参数传到一般处理程序(后缀为ashx)中,再把结果传回到页面. 1.html代码: <html xmlns=" ...

  10. mac下安装使用svn

    mac自带了svn服务端和客户端,所以只需要简单配置一下就可以使用   转自  http://blog.sina.com.cn/s/blog_677fb16e01011i6l.html 1.创建svn ...