Her er tre muligheder for at vise alle funktioner i en PostgreSQL-database.
information_schema.routines
Vis
Denne visning indeholder alle funktioner og procedurer i den aktuelle database, som den aktuelle bruger har adgang til (ved at være ejer eller have et privilegium).
Her er et eksempel på returnering af en liste over funktioner:
SELECT
routine_name
FROM
information_schema.routines
WHERE
routine_type = 'FUNCTION'
AND
routine_schema = 'public';
I dette eksempel fungerer kun med public
skema returneres. Du er velkommen til at inkludere flere kolonner, hvis det er nødvendigt.
pg_proc
Katalog
pg_catalog.pg_proc
kataloget gemmer information om funktioner, procedurer, aggregerede funktioner og vinduesfunktioner.
Vi kan tilslutte dette med pg_catalog.pg_namespace
katalog for at filtrere resultaterne til kun procedurer med public
navneområde:
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';
Vi filtrerede til en prokind
af f
for at begrænse resultaterne til kun normale funktioner.
De mulige værdier er f
for en normal funktion, p
for en procedure, a
for en samlet funktion eller w
for en vinduesfunktion.
\df
Kommando
Når vi bruger psql, kan vi bruge \df
kommando:
\df
Som standard returnerer dette kun brugeroprettede objekter. Du kan alternativt levere et mønster eller S
modifikator til at inkludere systemobjekter.
Her er et eksempel på at give et mønster:
\df *key*
Dette eksempel indsnævrer resultaterne til kun de funktioner/procedurer med teksten key
i deres navn.
Bemærk, at denne kommando også returnerer lagrede procedurer. Rutintypen (f.eks. func
, proc
) er angivet i en type
kolonne i outputtet.