[PostgreSQL] 如何用一条SQL语句展示某个 table 的索引(indexes)?

问题描述

接手公司的 PostgreSQL 项目的时候,常常需要了解一个表里究竟用了哪些索引,那么如何用 SQL 来查询到?

问题出现的环境背景及自己尝试过哪些方法

PostgreSQL。可以使用一些图形化的软件来查看,但是有的时候公司数据库不允许直接连接,只能使用SQL访问。

相关代码

希望你能提供一句 SQL 代码。

你期待的结果是什么?实际看到的错误信息又是什么?

展示出某个 table 的所有索引。

本文参与了SegmentFault 思否面试闯关挑战赛,欢迎正在阅读的你也加入。
阅读 2k
2 个回答
✓ 已被采纳
SELECT
    tablename,
    indexname,
    indexdef
FROM
    pg_indexes
WHERE
    tablename = 'table_name'
ORDER BY
    tablename,
    indexname;

pg_indexes 表里保存了全部 indexes 的信息。

本文参与了SegmentFault 思否面试闯关挑战赛,欢迎正在阅读的你也加入。

我一般习惯用\d+ <table>来看索引

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进