如何在CockroachDB中对`SHOW INDEXES`的结果进行排序/过滤?

问题描述 投票:0回答:1

在 Cockroach 中,您可以使用

获取数据库中所有索引的列表
SHOW INDEXES FROM DATABASE db_name;

据我所知,这是唯一的方法——没有像

information_schema."indexes"
这样的表格。

我只想选择列的子集,但我不知道如何选择。像这样的查询

SELECT
  t.table_name,
  t.index_name,
  -- ...
FROM (
  SHOW INDEXES FROM DATABASE db_name
) AS t;

报告

ERROR: at or near "from": syntax error
,这非常没有帮助。如果需要的话,我还希望能够添加
WHERE
和/或
ORDER BY
。如何像操作表格一样操作
SHOW INDEXES
的结果?

对于我这样做的一些背景,我想使用两个不同版本的 Cockroach(22.2.3 与 24.2.4)比较两个不同版本的数据库上存在的索引。

SHOW INDEXES
在这些版本之间返回一组不同的列,这使得简单的
diff
不可行。

sql cockroachdb
1个回答
0
投票

您可以在单词

WITH
之前使用
SELECT
子句:

WITH t AS (
    SHOW INDEXES FROM DATABASE db_name
)
SELECT
    table_name,
    index_name,
    -- ...
FROM t;

请注意,与

AS
子句中的嵌套查询相比,
FROM
是向后的。

© www.soinside.com 2019 - 2024. All rights reserved.