Postgres 中的 pg_class 是啥以及如何使用 pgAdmin 4 查看它?

Posted

技术标签:

【中文标题】Postgres 中的 pg_class 是啥以及如何使用 pgAdmin 4 查看它?【英文标题】:What is pg_class in Postgres and how to see it using pgAdmin 4?Postgres 中的 pg_class 是什么以及如何使用 pgAdmin 4 查看它? 【发布时间】:2018-12-13 07:11:47 【问题描述】:

我是 Postgresql 的新手,我刚刚看到我的朋友在一个名为“pq_class”的 cakephp 控制器上进行查询。我试图查看我的 PostgreSQL 数据库并使用 pgAgmin4 找出里面的内容。

不幸的是,我看不到任何带有“pg_class”的表名。我试图用谷歌搜索并找到这些页面:

https://www.postgresql.org/docs/current/catalog-pg-class.html

postgreSQL - pg_class question

但我仍然对pg_class 感到困惑。是否有关于 pg_class 的任何好的或真实的解释以及如何在不使用任何查询的情况下使用 pgAdmin4 来查看它(只需右键单击 -> 查看数据)

【问题讨论】:

第一个链接中的描述不清楚的地方:“pg_class 对表和大多数其他具有列或与表相似的所有内容进行编目。 好的或真实的解释你可以在文档中看到的所有postgresql源代码。如果你不明白,请仔细阅读文档并再次进行研究。 @a_horse_with_no_name,那里的目录是什么意思?为什么需要对表进行编目?对不起,我的背景是mysql,所以无法想象pg_class。谢谢 @dwir182 当然,谢谢 "目录表" = "存储有关表的信息" 【参考方案1】:

pg_class 是一个内部系统表,用于存储有关数据库中可用表(和类似对象)的信息。每个数据库产品都有它维护的 collection of system tables(和视图)。

如果您想查看有关表、列、视图和其他数据库对象的信息,您可以(并且在大多数情况下应该)使用来自information_schema 的视图。

【讨论】:

【参考方案2】:

您可以像这样从 pgadmin 上的 information_schema 获取详细信息。

` SELECT * FROM information_schema.columns;

从 information_schema.tables 中选择 * `

【讨论】:

以上是关于Postgres 中的 pg_class 是啥以及如何使用 pgAdmin 4 查看它?的主要内容,如果未能解决你的问题,请参考以下文章

Postgres 中的这种“文字”语法是啥?

从 Postgres 中的表函数返回多行的最简单方法是啥?

About stats collected

Postgresql pg_class查看所有表名relname及记录数reltuples,记录数显示0实际有数据解决

Postgres 字符串前的“E”是啥?

从 React->ExpressJS->Postgres 修补 Postgres JSONB 列的最佳方法是啥?