栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Postgres -- 创建实体化视图 & 刷新实体化视图 & 删除实体化视图

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Postgres -- 创建实体化视图 & 刷新实体化视图 & 删除实体化视图

创建视图

可以将若干表中的信息汇聚到一张视图中,成为一张"表",方便查询,提高查询效率。在不刷新视图的情况下,视图中的内容不会改变

CREATE MATERIALIZED VIEW PUBLIC."acl_test_view$v" TABLESPACE pg_default AS 
	SELECt
	r.ID,
	r.NAME,
	r.type_id,
	TYPE.category 
	FROM
		acl_inventory_resource r
		LEFT JOIN acl_inventory_res_type TYPE ON r.type_id = TYPE.ID 
WITH DATA;

创建索引

CREATE UNIQUE INDEX test_view_index
    ON public."acl_test_view$v" USING btree
    (id COLLATE pg_catalog."default", name COLLATE pg_catalog."default")
    TABLESPACE pg_default;

如果不加索引,刷新视图如果带 CONCURRENTLY 就会报错,报错如下:

REFRESH MATERIALIZED VIEW ConCURRENTLY PUBLIC."acl_test_view$v"
> ERROR:  cannot refresh materialized view "public."acl_test_view$v"" concurrently
  HINT:  Create a unique index with no WHERe clause on one or more columns of the materialized view.

CONCURRENTLY 非阻塞

查询视图
SELECt
	* 
FROM
	acl_test_view$v;
刷新视图
REFRESH MATERIALIZED VIEW ConCURRENTLY PUBLIC."acl_test_view$v";
删除视图
DROP MATERIALIZED VIEW PUBLIC."acl_test_view$v" ;
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/299104.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号