📅  最后修改于: 2020-11-30 09:36:53             🧑  作者: Mango
在本节中,我们将借助SQL Shell(PSQL)和pg_indexes视图从PostgreSQL数据库中了解列表索引的工作。还有使用psql和pg_indexes视图列出索引的示例。
在PostgreSQL中,没有像SHOW INDEXES这样的命令来列出数据库或表的索引数据。
但是PostgreSQL允许以两种不同的方式访问列出索引的方法,如下所示:
现在,我们将了解使用psql和pg_indexes逐一查看将索引列出到PostgreSQL数据库或表中的过程。
我们将按照以下过程在psql中列出一个表:
\c Organization
输出量
执行上述命令后,我们将获得以下输出:
如果要列出表的所有索引并连接到PostgreSQL数据库,可以使用以下psql命令:
\d table_name
上面的命令用于返回表的所有信息以及表的结构,索引,触发器和约束。
在下面的示例中,以下命令用于获取有关employee表的完整信息:
\d employee
输出量
执行完上述命令后,我们将获得以下输出,该输出在索引部分下显示表的索引。
在PostgreSQL中, pg_indexes视图允许我们获取PostgreSQL数据库中所有索引的重要数据。
pg_indexes视图包含五列,如下所示:
Columns | Explanation |
---|---|
schemaname | The schemaname column is used to store the name of the schema, which includes the indexes and the tables. |
tablename | The tablename column is used to keep the table name where the index belongs. |
indexname | The name of the index stores in the indexname column. |
tablespace | The tablespace column is used to keep the name of the tablespace, which involves the indexes. |
indexdef | The indexdef column stores the index definition command in the form of the CREATE INDEX command. |
在下面的命令中,我们将使用上表中说明的所有五列列出现有数据库中公共模式的所有索引:
SELECT tablename, indexname, indexdef
FROM pg_indexes
WHERE schemaname = 'public'
ORDER BY tablename, indexname;
输出量
执行上述命令后,我们将获得以下输出,其中显示了在组织数据库中创建的表的完整列表。
下图用于显示表的所有索引:
SELECT indexname, indexdef
FROM pg_indexes
WHERE tablename = 'table_name';
在以下示例中,我们尝试检索Employee表的所有索引的列表,如以下命令所示:
SELECT indexname, indexdef
FROM pg_indexes
WHERE tablename = 'employee';
输出量
实施上述命令后,我们将获得以下输出,其中显示了employee表的所有索引。
如果需要获取名称以字母e开头的表的索引列表,可以使用以下命令:
SELECT tablename, indexname, indexdef
FROM pg_indexes
WHERE tablename LIKE 'e%'
ORDER BY tablename, indexname;
输出量
执行完上述命令后,我们将获得以下输出,该输出显示名称以字母e开头的表:
在“ PostgreSQL列表索引”部分中,我们学习了以下主题: