在 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
不可行。
您可以在单词
WITH
之前使用 SELECT
子句:
WITH t AS (
SHOW INDEXES FROM DATABASE db_name
)
SELECT
table_name,
index_name,
-- ...
FROM t;
请注意,与
AS
子句中的嵌套查询相比,FROM
是向后的。