Wie listet man die Indizes einer Ingres-Datenbank auf?

Hier erfährst du wie man alle Indizes einer Ingres-Datenbank auflistet, oder alle Indizes einer bestimmten Tabelle, doer ob ein bestimmtes Feld in einem Index enthalten ist.

Die Indizes (“Indexe”) einer Actian Ingres-Datenbank kann man sich über ganz normale Select-Abfragen anzeigen lassen.

Um alle vorhandenen Indizes aller Tabellen anzuzeigen, fragt man einfach die Tabelle iiindexes ab:

SELECT * FROM iiindexes

Oft möchte man jedoch nur die Indizes einer bestimmten Tabelle sehen. Dazu ergänzt man das SQL-Statement um eine passende Where-Bedingung. (Das Feld iiindexes.base_name enthält den Tabellennamen). tablename ersetzt man einfach durch den gewünschten Tabellennamen:

SELECT * FROM iiindexes WHERE base_name = 'tablename'

Die vorangegangenen Abfragen listen nur die Namen der entsprechenden Indizes auf – nicht aber die Felder / Spalten die dem Index zugewiesen sind. Um alle Spalten eines Index anzuzeigen, fragt man die Tabelle iiindex_columns ab. index_name ist hierbei ein Wert aus der Spalte iiindex.index_name aus der Abfrage der Tabelle iiindexes :

SELECT * FROM iiindex_columns WHERE index_name = 'indexname'

Mit folgender Abfrage erhält man alle Indizes einer bestimmten Tabelle inklusive der entsprechenden Spalten / Felder:

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

Möchte man wissen, ob ein bestimmtes Tabellenfeld bereits in einem Index enthalten ist, nutzt man am besten diese Möglichkeit:

SELECT * FROM iiindexes LEFT JOIN iiindex_columns ON iiindexes.index_name = iiindex_columns.index_name WHERE base_name = 'tablename' and column_name = 'columnname'

Weiterführende Informationen

Schlagwörter: ,

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Consent Management Platform von Real Cookie Banner