sql >> Database teknologi >  >> RDS >> PostgreSQL

3 måder at liste alle funktioner i PostgreSQL

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.


  1. psql:kunne ikke oprette forbindelse til serveren:Ingen sådan fil eller mappe (Mac OS X)

  2. Indsæt data i 3 tabeller ad gangen ved hjælp af Postgres

  3. Sådan returneres elementer fra et JSON-array i MariaDB

  4. hvordan ser et B-træindeks på mere end 1 kolonne ud?