¿Cómo se enumeran los índices de una base de datos Ingres?

Mediante consultas SQL sobre las tablas del sistema iiindexes y iiindex_columns, es posible mostrar todos los índices, los índices de una tabla específica, así como las columnas que contienen, en una base de datos Actian-Ingres. Además, se puede verificar si un campo específico de una tabla está incluido en un índice. Las consultas SELECT y JOIN adecuadas se explican a través de ejemplos concretos.

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'

Más información

Sobre el autor

Aviso sobre Cookies en WordPress por Real Cookie Banner