当前位置: 首页 > news >正文

pg_class 系统表信息

SELECT 
c.relname,
c.relkind, 
CASE WHEN c.relkind = 'r' THEN '普通表' WHEN c.relkind = 'p' THEN '分区表' WHEN c.relkind = 'f' THEN '外表' WHEN c.relkind = 'v' THEN '视图' WHEN c.relkind = 'm' THEN '物化视图' ELSE '其他' 
END as table_type_desc 
FROM 
pg_class c 
JOIN 
pg_namespace n ON c.relnamespace = n.oid 
WHERE 
n.nspname = 'middle';
-- AND c.relname = %s
SELECT indexname as index_name,indexdef as index_definition,CASE WHEN indexdef LIKE '%%UNIQUE%%' THEN trueELSE falseEND as is_unique
FROM pg_indexes
WHERE schemaname = 'middle'-- AND tablename = %s
ORDER BY indexname;

pg_class 系统表信息

pg_class 是 PostgreSQL 中的一个关键系统目录表,它存储了关于数据库对象(主要是表和类似表的对象)的元数据信息。以下是 pg_class 包含的主要信息:

主要列信息

  1. 对象标识信息
    • oid - 对象的对象标识符(OID)
    • relname - 对象名称
    • relnamespace - 包含该对象的命名空间的OID(对应pg_namespace)
  1. 对象类型信息
    • relkind - 对象类型标识:
      • r = 普通表
      • i = 索引
      • S = 序列
      • v = 视图
      • c = 复合类型
      • t = TOAST表
      • m = 物化视图
      • p = 分区表
      • I = 分区索引
  1. 存储信息
    • relfilenode - 对象在磁盘上的文件名(0表示特殊关系)
    • reltablespace - 对象所在的表空间OID
  1. 统计信息
    • relpages - 磁盘页数(估算值)
    • reltuples - 行数(估算值)
  1. 权限信息
    • relacl - 访问权限
  1. 约束和选项
    • relhasindex - 是否有索引
    • relhasrules - 是否有规则
    • relhastriggers - 是否有触发器
    • relhasoids - 是否有OID列
    • relfrozenxid - 冻结事务ID
    • relminmxid - 最小多事务ID
  1. 继承信息
    • relispartition - 是否为分区
    • relpartbound - 分区边界

查询示例

-- 查看所有表的基本信息
SELECT relname, relkind, reltuples, relpages 
FROM pg_class 
WHERE relkind = 'r';-- 查看特定表的详细信息
SELECT * FROM pg_class WHERE relname = 'your_table_name';

pg_class 是 PostgreSQL 系统目录中最重要的表之一,它提供了数据库对象的基础元数据,是许多系统查询和管理的核心。

http://www.dtcms.com/a/269065.html

相关文章:

  • React + Express 传输加密以及不可逆加密
  • OpenCV人脸分析------绘制面部关键点函数drawFacemarks()
  • day08-Elasticsearch
  • MinIO与SpringBoot集成完整指南
  • maven 发布到中央仓库常用脚本-02
  • 视频序列和射频信号多模态融合算法Fusion-Vital解读
  • 力扣 hot100 Day37
  • C++笔记之和的区别
  • Isaac Lab:让机器人学习更简单的开源框架
  • Go defer(二):从汇编的角度理解延迟调用的实现
  • RAG实战指南 Day 8:PDF、Word和HTML文档解析实战
  • Stirling-PDF 本地化部署,建立自己的专属PDF工具箱
  • 力扣_链表(前后指针)_python版本
  • 虚幻引擎UE5 GAS开发RPG游戏-02 设置英雄角色-18 改成网络多人游戏
  • C++:string类(3)(string类的模拟实现)
  • 批量OCR的GitHub项目
  • Linux 进程控制:全面深入剖析进程创建、终止、替换与等待
  • UI自动化常见面试题
  • qt-C++笔记之QSplitter
  • PyTorch笔记3----------统计学相关函数
  • AI PPT探秘
  • ARMv7单核CPU上SWI(软件中断)验证
  • 策略与工厂的演进:打造工业级Spring路由框架
  • window显示驱动开发—X 通道解释
  • 如何远程管理Linux服务器
  • Rust 内存结构:深入解析
  • DPDK 网络驱动 之 UIO
  • 如何使用 Renode(快速入门)
  • 二进制安全-汇编语言-03-寄存器(内存访问)
  • cuda编程笔记(6)--流