PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

3 façons de lister toutes les fonctions dans PostgreSQL

Voici trois options pour répertorier toutes les fonctions d'une base de données PostgreSQL.

Les information_schema.routines Afficher

Cette vue contient toutes les fonctions et procédures de la base de données actuelle auxquelles l'utilisateur actuel a accès (en étant le propriétaire ou en ayant certains privilèges).

Voici un exemple de renvoi d'une liste de fonctions :

SELECT
    routine_name
FROM 
    information_schema.routines
WHERE 
    routine_type = 'FUNCTION'
AND
    routine_schema = 'public';

Dans cet exemple, ne fonctionne qu'avec le public schéma sont retournés. N'hésitez pas à inclure plus de colonnes si nécessaire.

Le pg_proc Catalogue

Le pg_catalog.pg_proc catalogue stocke des informations sur les fonctions, les procédures, les fonctions d'agrégation et les fonctions de fenêtre.

Nous pouvons joindre cela avec le pg_catalog.pg_namespace catalogue pour filtrer les résultats aux seules procédures avec le public espace de noms :

SELECT
    n.nspname,
    p.proname
FROM 
    pg_catalog.pg_namespace n
JOIN 
    pg_catalog.pg_proc p ON 
    p.pronamespace = n.oid
WHERE 
    p.prokind = 'f'
AND
    n.nspname = 'public';

Nous avons filtré sur un prokind de f pour limiter les résultats aux fonctions normales.

Les valeurs possibles sont f pour une fonction normale, p pour une procédure, a pour une fonction d'agrégation, ou w pour une fonction de fenêtre.

Le \df Commande

Lors de l'utilisation de psql, nous pouvons utiliser le \df commande :

\df

Par défaut, cela renvoie uniquement les objets créés par l'utilisateur. Vous pouvez alternativement fournir un motif ou le S modificateur pour inclure les objets système.

Voici un exemple de fourniture d'un modèle :

\df *key*

Cet exemple réduit les résultats aux seules fonctions/procédures avec le texte key en leur nom.

Notez que cette commande renvoie également des procédures stockées. Le type de routine (par exemple func , proc ) est listé dans un type colonne dans la sortie.