postgresql:如何列出索引列?
有很多信息可以从 postgresql 中的 information_schema 和 pg_catalog 中检索。我想检索有关由某个索引索引的列的信息,类似于我在 sqlite3 中使用 pragma index_info(
实现的效果。在不解析 create index
语句的情况下如何实现这一点?
There is a lot of information, that can be retrieved from information_schema and pg_catalog in postgresql
. I would like to retrieve information about columns indexed by a certain index, similar to what I would achieve with pragma index_info(<index_name>)
in sqlite3. How can this be achieved without parsing create index
statement?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这些事情很容易找到。
只需使用
-E
选项运行 psql,它就会显示所使用的 SQL 语句。因此,当运行 \d index_name 时,将使用以下语句(以及其他语句)来检索索引列:Those things are pretty easy to find out.
Simply run psql with the
-E
option and it will show you the SQL statements that are used. So when running \d index_name the following statement (among others) is used to retrieve the index columns:接受的答案对我不起作用(执行时发生错误)。
无论如何,您可以列出数据库中的所有列并以某种方式标记所有索引列
(限制结果行集的能力作为注释提到):
示例结果:
Accepted answer didn't work for me (error occured on execution).
Anyway, you can list all columns in the database and mark all indexed in some way columns
(abilities to limit result rowset are mentioned as comments):
The example result: