Maison >base de données >tutoriel mysql >Comment récupérer les colonnes associées aux index dans PostgreSQL ?

Comment récupérer les colonnes associées aux index dans PostgreSQL ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-31 06:48:09904parcourir

How to Retrieve Columns Associated with Indexes in PostgreSQL?

Récupération des colonnes associées aux index dans PostgreSQL

Dans PostgreSQL, la récupération des colonnes correspondant à un index diffère de la commande SHOW INDEXES de MySQL.

Pour obtenir les informations souhaitées dans PostgreSQL, utilisez ce qui suit query :

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%';

Cette requête récupère les noms de table et d'index ainsi que les noms de colonnes associés. Pour plus d'informations, la requête peut être modifiée pour agréger les noms de colonnes :

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;

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn