Aquí aprenderás cómo listar todos los índices de una base de datos Ingres, o todos los índices de una tabla específica, o si un determinado campo está incluido en un índice.
Los índices de una base de datos Actian Ingres se pueden ver a través de simples consultas SELECT.
Para mostrar todos los índices existentes de todas las tablas, simplemente se consulta la tabla iiindexes:
SELECT * FROM iiindexes
A menudo, sin embargo, solo se desean ver los índices de una tabla específica. Para esto, se añade una condición WHERE apropiada a la consulta SQL. (El campo iiindexes.base_name contiene el nombre de la tabla). Simplemente se reemplaza tablename por el nombre de la tabla deseada:
SELECT * FROM iiindexes WHERE base_name = 'tablename'
Las consultas anteriores solo listan los nombres de los índices correspondientes, pero no los campos/columnas asignados al índice. Para ver todas las columnas de un índice, se consulta la tabla iiindex_columns. index_name es aquí un valor de la columna iiindex.index_name de la consulta a la tabla iiindexes:
SELECT * FROM iiindex_columns WHERE index_name = 'indexname'
Con la siguiente consulta obtienes todos los índices de una tabla específica incluyendo las columnas/campos correspondientes:
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
Si quieres saber si un determinado campo de una tabla ya está incluido en un índice, lo mejor es usar esta opción:
SELECT * FROM iiindexes LEFT JOIN iiindex_columns ON iiindexes.index_name = iiindex_columns.index_name WHERE base_name = 'tablename' and column_name = 'columnname'