Index Informationen für Firebird

Tags: 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

Add a Comment