Aug 06 2008

Index Informationen für Firebird

Tag: Datenbanken,FirebirdMichael @ 16:31

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