Heim >Datenbank >MySQL-Tutorial >Wie rufe ich mit Indizes verknüpfte Spalten in PostgreSQL ab?

Wie rufe ich mit Indizes verknüpfte Spalten in PostgreSQL ab?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-31 06:48:09857Durchsuche

How to Retrieve Columns Associated with Indexes in PostgreSQL?

Abrufen von mit Indizes verknüpften Spalten in PostgreSQL

In PostgreSQL unterscheidet sich das Abrufen der einem Index entsprechenden Spalten vom MySQL-Befehl SHOW INDEXES.

Zu erhalten Um die gewünschten Informationen in PostgreSQL zu erhalten, verwenden Sie Folgendes Abfrage:

select
    t.relname as table_name,
    i.relname as index_name,
    a.attname as column_name
from
    pg_class t,
    pg_class i,
    pg_index ix,
    pg_attribute a
where
    t.oid = ix.indrelid
    and i.oid = ix.indexrelid
    and a.attrelid = t.oid
    and a.attnum = ANY(ix.indkey)
    and t.relkind = 'r'
    and t.relname like 'test%';

Diese Abfrage ruft die Tabellen- und Indexnamen zusammen mit den zugehörigen Spaltennamen ab. Für weitere Erkenntnisse kann die Abfrage so geändert werden, dass die Spaltennamen aggregiert werden:

select
    t.relname as table_name,
    i.relname as index_name,
    array_to_string(array_agg(a.attname), ', ') as column_names
from
    pg_class t,
    pg_class i,
    pg_index ix,
    pg_attribute a
where
    t.oid = ix.indrelid
    and i.oid = ix.indexrelid
    and a.attrelid = t.oid
    and a.attnum = ANY(ix.indkey)
    and t.relkind = 'r'
    and t.relname like 'test%'
group by
    t.relname,
    i.relname
order by
    t.relname,
    i.relname;

Das obige ist der detaillierte Inhalt vonWie rufe ich mit Indizes verknüpfte Spalten in PostgreSQL ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn