首页 > 解决方案 > information_schema.tables 和 pg_tables 之间的区别

问题描述

Postgres 数据库中的 information_schema.tables 和 pg_tables 表有什么区别?pg_tables 输出中的表数量较少,但从系统角度来看,这 2 个表的结果是什么?

标签: postgresql

解决方案


INFORMATION_SCHEMA 中的视图由 SQL 标准定义并显示该标准所需的信息。所以他们不能显示任何不符合 SQL 标准规则的 Postgres 特定信息。因此,使用它的查询可能也适用于支持 INFORMATION_SCHEMA 的其他 DBMS 产品,但并非所有产品都 100% 正确实现它。Postgres 也有一些偏离 INFORMATION_SCHEMA 规范的地方。但是相似之处非常接近,因此很容易移植和使用这样的查询与不同的数据库。

模式中的所有系统表和视图pg_catalog(包括pg_tables)完全是 Postgres 特定的。使用这些的查询永远不会在其他 DBMS 产品上运行。INFORMATION_SCHEMA 视图使用这些系统视图和表来收集和呈现 SQL 标准要求的元数据。


推荐阅读