Aqui você aprende como listar todos os índices de um banco de dados Ingres, todos os índices de uma tabela específica ou se um determinado campo está contido em um índice.
Os índices (“indexes”) de um banco de dados Actian Ingres podem ser exibidos através de consultas SELECT normais.
Para exibir todos os índices existentes de todas as tabelas, basta consultar a tabela iiindexes:
SELECT * FROM iiindexes
Muitas vezes, porém, você quer apenas ver os índices de uma determinada tabela. Para isso, basta adicionar uma cláusula WHERE apropriada à consulta SQL. (O campo iiindexes.base_name contém o nome da tabela). tablename deve ser substituído pelo nome da tabela desejada:
SELECT * FROM iiindexes WHERE base_name = 'tablename'
As consultas acima listam apenas os nomes dos índices correspondentes – mas não os campos / colunas atribuídos ao índice. Para exibir todas as colunas de um índice, consulte a tabela iiindex_columns. index_name é um valor da coluna iiindex.index_name da consulta da tabela iiindexes:
SELECT * FROM iiindex_columns WHERE index_name = 'indexname'
Com a seguinte consulta, você recebe todos os índices de uma tabela específica, incluindo as colunas / campos correspondentes:
SELECT * FROM iiindexes LEFT JOIN iiindex_columns ON iiindexes.index_name = iiindex_columns.index_name WHERE base_name = 'tablename' ORDER BY iiindexes.index_name, key_sequence
Se você quiser saber se um determinado campo de tabela já está contido em um índice, o melhor é usar a seguinte consulta:
SELECT * FROM iiindexes LEFT JOIN iiindex_columns ON iiindexes.index_name = iiindex_columns.index_name WHERE base_name = 'tablename' and column_name = 'columnname'