Index Informationen für Firebird
Für ein Projekt benötigte ich detaillierte Informationen über Indices in einer Firebird-Datenbank. Hier die Lösung:
SELECT RDB$INDEX_SEGMENTS.RDB$FIELD_NAME AS field_name, RDB$INDICES.RDB$DESCRIPTION AS description, (RDB$INDEX_SEGMENTS.RDB$FIELD_POSITION + 1) AS field_position FROM RDB$INDEX_SEGMENTS LEFT JOIN RDB$INDICES ON RDB$INDICES.RDB$INDEX_NAME = RDB$INDEX_SEGMENTS.RDB$INDEX_NAME LEFT JOIN RDB$RELATION_CONSTRAINTS ON RDB$RELATION_CONSTRAINTS.RDB$INDEX_NAME = RDB$INDEX_SEGMENTS.RDB$INDEX_NAME WHERE UPPER(RDB$INDICES.RDB$RELATION_NAME)= <TABLE_NAME> AND UPPER(RDB$INDICES.RDB$INDEX_NAME)= <INDEX_NAME> AND RDB$RELATION_CONSTRAINTS.RDB$CONSTRAINT_TYPE IS NULL ORDER BY RDB$INDEX_SEGMENTS.RDB$FIELD_POSITION
<TABLE_NAME> und <INDEX_NAME> mit den entsprechenden Werten ersetzen