要确定一个 PostgreSQL 表中的列是否包含在多个索引中,可以使用以下代码示例:
SELECT
t.relname AS table_name,
a.attname AS column_name,
i.relname AS index_name
FROM
pg_index AS idx
JOIN pg_class AS t ON idx.indrelid = t.oid
JOIN pg_attribute AS a ON a.attrelid = t.oid AND a.attnum = ANY(idx.indkey)
JOIN pg_class AS i ON idx.indexrelid = i.oid
WHERE
t.relname = 'your_table_name'
AND a.attname = 'your_column_name'
ORDER BY
t.relname,
a.attname,
i.relname;
在上面的代码中,将替换 'your_table_name' 和 'your_column_name' 为要查询的表名和列名。这将返回一个结果集,显示指定列出现的所有索引。
如果结果集为空,说明该列没有包含在任何索引中。
如果结果集中包含多行,说明该列包含在多个索引中。
希望这可以帮助到你解决问题!
上一篇:表中的“幻影度量值”
下一篇:表中多个索引匹配的总和