九月 10, 2023
摘要:在本教程中,您将学习如何使用pg_indexes
视图或psql
命令列出 PostgreSQL 数据库中的索引。
目录
PostgreSQL 不提供类似SHOW INDEXES
的命令,列出表或数据库索引信息。
但是,它确实为您提供了对pg_indexes
视图的访问权限,以便您可以查询索引信息。
如果使用psql
程序与 PostgreSQL 数据库交互,则可以使用\d
命令查看表的索引信息。
使用 pg_indexes 视图列出索引
pg_indexes
视图允许您访问 PostgreSQL 数据库中每个索引的有用信息。pg_indexes
视图由五列组成:
schemaname
:存储包含表和索引的模式的名称。tablename
:存储索引所属表的名称。indexname
:存储索引的名称。tablespace
:存储包含索引的表空间的名称。indexdef
:以CREATE INDEX
语句的形式存储索引定义命令。
以下语句列出了当前数据库中public
模式的所有索引:
SELECT
tablename,
indexname,
indexdef
FROM
pg_indexes
WHERE
schemaname = 'public'
ORDER BY
tablename,
indexname;
部分输出为:
要显示表的所有索引,请使用以下语句:
SELECT
indexname,
indexdef
FROM
pg_indexes
WHERE
tablename = 'table_name';
例如,要列出customer
表的所有索引,请使用以下语句:
SELECT
indexname,
indexdef
FROM
pg_indexes
WHERE
tablename = 'customer';
这是输出:
如果要获取名称以字母c
开头的表的索引列表,可以使用以下查询:
SELECT
tablename,
indexname,
indexdef
FROM
pg_indexes
WHERE
tablename LIKE 'c%'
ORDER BY
tablename,
indexname;
下面显示了输出:
使用 psql 命令列出索引
如果您用psql
来连接 PostgreSQL 数据库,并希望列出表的所有索引,可以使用 psql 命令 \d
,如下所示:
\d table_name
该命令将返回有关表的所有信息,包括表的结构、索引、约束和触发器。
例如,以下语句返回有关customer
表的详细信息:
\d customer
输出是:
正如输出中清楚显示的那样,您可以在索引部分下找到表的索引。
在本教程中,您学习了如何通过查询pg_indexes
视图来列出 PostgreSQL 数据库中的所有索引。