PostgreSQL 列出索引

2025年3月17日 | 阅读 3 分钟

在本节中,我们将了解使用 SQL Shell (PSQL)pg_indexes 视图PostgreSQL 数据库中使用的 列出索引 的工作原理。以及使用 psql 和 pg_indexes 视图列出索引示例

什么是 PostgreSQL 列出索引?

PostgreSQL 中,我们没有像 SHOW INDEXES 这样的命令来列出数据库或表的索引数据。

但是 PostgreSQL 允许以两种不同的方式访问索引列表,如下所示

  • SQL shell(psql): 如果我们使用 psql 来检索 PostgreSQL 数据库,则 \d 命令用于查看表的索引数据。
  • pg_indexes 视图: pg_indexes 视图允许我们访问 PostgreSQL 数据库中每个索引的有用信息。

现在我们将逐一了解使用 psqlpg_indexes 视图将索引列入 PostgreSQL 数据库或表中的过程。

使用 psql 命令列出 PostgreSQL 索引

我们将按照以下流程在 psql 中列出表

  • 首先,我们将在本地系统中打开 psql,然后连接到我们要创建函数的数据库。
  • 我们将在 javatpoint 数据库中创建一个表,该数据库是我们之前在 PostgreSQL 教程中创建的。
  • 要连接数据库,我们将输入以下命令

输出

执行上述命令后,我们将获得以下输出

PostgreSQL List Indexes

如果我们想列出表的所有索引并连接到 PostgreSQL 数据库,我们可以使用以下 psql 命令

上述命令用于返回有关该表的所有信息,包括表的结构、索引触发器约束

在下面的示例中,以下命令用于获取有关 employee 表的完整信息

输出

执行上述命令后,我们将获得以下输出,其中显示了索引部分下的表的索引。

PostgreSQL List Indexes

使用 pg_indexes 视图列出 PostgreSQL 索引

在 PostgreSQL 中,pg_indexes 视图允许我们获取 PostgreSQL 数据库中所有索引的重要数据。

pg_indexes 视图 包含五个列,如下所述

说明
schemanameschemaname 列用于存储模式的名称,其中包括索引和表。
tablenametablename 列用于保存索引所属的表名。
indexname索引的名称存储在 indexname 列中。
tablespacetablespace 列用于保存表的空间名称,其中包含索引。
indexdefindexdef 列以 CREATE INDEX 命令的形式存储索引定义命令。

在下面的命令中,我们将使用上面表格中解释的所有 五列 来列出现有数据库中 schema public 的所有索引

输出

执行上述命令后,我们将获得以下输出,其中显示了在 Organization 数据库中创建的表的完整列表。

PostgreSQL List Indexes

下图用于显示表的所有索引

在以下示例中,我们尝试检索 Employee 表的所有索引的列表,如下面的命令所示

输出

实施上述命令后,我们将获得以下输出,其中显示了 employee 表的所有索引。

PostgreSQL List Indexes

如果我们需要获取表名以字母 e 开头的表的索引列表,我们可以使用以下命令

输出

执行上述命令后,我们将获得以下输出,其中显示了那些名称以字母 e 开头的表

PostgreSQL List Indexes

概述

PostgreSQL 列出索引 部分中,我们学习了以下主题

  • 我们使用了 PostgreSQL 列出索引 命令来列出 PostgreSQL 数据库中的所有索引。
  • 我们了解了使用不同方法(例如 SQL shell(psql) 和 pg_indexes 视图列出索引的过程。