开发者社区> 德哥> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

PostgreSQL 元数据库讲解 - 对象(表、索引、函数、序列、视图...)在哪里、如何识别、如何求对象定义

简介:
+关注继续查看

标签

PostgreSQL , pg_stat , 实时质量监控


背景

PostgreSQL中,所有对象的定义都在元数据库中,详见

https://www.postgresql.org/docs/10/static/catalogs.html

除了元数据库,还有一些管理函数,如下

https://www.postgresql.org/docs/10/static/functions-admin.html

下面简单介绍一下元数据库的使用。

如何识别对象

1、识别临时表、UNLOGGED TABLE、临时表

select relname from pg_class where relpersistence=? and relkind='r';  

pg_class 的relpersistence用于识别表是什么表(正常表、不记日志表、临时表)。 relkind用于识别是什么对象类别(表、索引、序列、切片、视图、物化视图、复合类型、外部表、分区表)。

relpersistence	  
	 	p = permanent table, u = unlogged table, t = temporary table  
relkind	  
	 	r = ordinary table, i = index, S = sequence, t = TOAST table, v = view, m = materialized view, c = composite type, f = foreign table, p = partitioned table  

Greenplum 扩展

pg_class.relstorage 用于区分是什么存储

h = 堆表(heap)  
a = append only row存储表  
c = append only column存储表  

存储过程

pg_proc

数据库

pg_database

表空间

pg_tablespace

schema

pg_namespace

用户

pg_roles

索引接口

pg_am

如何获取对象定义

使用这些函数接口,可以获得对应对象的定义。

pg_get_indexdef  
  
pg_get_functiondef  
  
pg_get_triggerdef  
  
pg_get_ruledef  
  
pg_get_viewdef  
  
pg_get_constraintdef  

例子

postgres=# select * from pg_get_indexdef('idx_tbl2_1'::regclass);  
                 pg_get_indexdef                    
--------------------------------------------------  
 CREATE INDEX idx_tbl2_1 ON tbl2 USING btree (id)  
(1 row)  

参考

https://www.postgresql.org/docs/10/static/catalogs.html

https://www.postgresql.org/docs/10/static/functions-admin.html

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
【学习资料】第15期快速入门PostgreSQL应用开发与管理 - 5 数据定义
大家好,这里是快速入门PostgreSQL应用开发与管理 - 5 数据定义
0 0
分析型数据库 PostgreSQL版本实例规格定义变更
信息摘要: 实例由按多个“计算组”组成,改为由按“节点”组成。一个节点只对应一个数据分区,简化规格定义,遵循标准集群数据库的模式。适用客户: 数据仓库/大数据/数据分析/数据库用户;政府/金融/零售/互联网等行业版本/规格功能: AnalyticDB for PostgreSQL 实例规格定义由多个“计算组”组成改为由多个“节点”组成。
525 0
PostgreSQL 10.1 手册_部分 II. SQL 语言_第 5 章 数据定义
第 5 章 数据定义 目录 5.1. 表基础 5.2. 默认值 5.3. 约束 5.3.1. 检查约束 5.3.2. 非空约束 5.3.3. 唯一约束 5.3.4. 主键 5.3.5. 外键 5.
751 0
PostgreSQL 10.1 手册_部分 II. SQL 语言_第 5 章 数据定义_5.13. 依赖跟踪
5.13. 依赖跟踪 当我们创建一个涉及到很多具有外键约束、视图、触发器、函数等的表的复杂数据库结构时,我们隐式地创建了一张对象之间的依赖关系网。例如,具有一个外键约束的表依赖于它所引用的表。
925 0
PostgreSQL 10.1 手册_部分 II. SQL 语言_第 5 章 数据定义_5.12. 其他数据库对象
5.12. 其他数据库对象 表是一个关系型数据库结构中的核心对象,因为它们承载了我们的数据。但是它们并不是数据库中的唯一一种对象。有很多其他种类的对象可以被创建来使得数据的使用和刮泥更加方便或高效。
683 0
PostgreSQL 10.1 手册_部分 II. SQL 语言_第 5 章 数据定义_5.11. 外部数据
5.11. 外部数据 PostgreSQL实现了部分的SQL/MED规定,允许我们使用普通SQL查询来访问位于PostgreSQL之外的数据。这种数据被称为外部数据(注意这种用法不要和外键混淆,后者是数据库中的一种约束)。
752 0
PostgreSQL 10.1 手册_部分 II. SQL 语言_第 5 章 数据定义_5.10. 表分区
5.10. 表分区 5.10.1. 概述 5.10.2. 声明式分区 5.10.3. 使用继承的实现 5.10.4. 划分和约束排除 PostgreSQL支持基本的表划分。本小节介绍为何以及怎样把划分实现为数据库设计的一部分。
1016 0
PostgreSQL 10.1 手册_部分 II. SQL 语言_第 5 章 数据定义_5.9. 继承
5.9. 继承 5.9.1. 警告 PostgreSQL实现了表继承,这对数据库设计者来说是一种有用的工具(SQL:1999及其后的版本定义了一种类型继承特性,但和这里介绍的继承有很大的不同)。
761 0
PostgreSQL 10.1 手册_部分 II. SQL 语言_第 5 章 数据定义_5.8. 模式
5.8. 模式 5.8.1. 创建模式 5.8.2. 公共模式 5.8.3. 模式搜索路径 5.8.4. 模式和权限 5.8.5. 系统目录模式 5.8.6. 惯用法 5.8.7. 可移植性 一个PostgreSQL数据库集簇中包含一个或更多命名的数据库。
905 0
PostgreSQL 10.1 手册_部分 II. SQL 语言_第 5 章 数据定义_5.7. 行安全性策略
5.7. 行安全性策略 除可以通过GRANT使用 SQL 标准的 特权系统之外,表还可以具有 行安全性策略,它针对每一个用户限制哪些行可以 被普通的查询返回或者可以被数据修改命令插入、更新或删除。
739 0
+关注
德哥
公益是一辈子的事, I am digoal, just do it.
文章
问答
来源圈子
更多
让用户数据永远在线,让数据无缝的自由流动
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
云数据库RDS MySQL从入门到高阶
立即下载
PolarDB for PostgreSQL 源码与应用实战
立即下载
PolarDB for PostgreSQL 开源必读手册
立即下载