Como listar os índices de um banco de dados Ingres?

Com consultas SQL nas tabelas do sistema iiindexes e iiindex_columns, é possível exibir todos os índices, os índices de uma tabela específica e as colunas contidas neles em um banco de dados Actian Ingres. Além disso, é possível verificar se um determinado campo de tabela está contido em um índice. As consultas SELECT e JOIN apropriadas são explicadas com base em exemplos concretos.

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'

Mais informações

Sobre o autor

Aviso de cookies do WordPress by Real Cookie Banner