Hier sind drei Optionen zum Auflisten aller Funktionen in einer PostgreSQL-Datenbank.
Die information_schema.routines
Anzeigen
Diese Ansicht enthält alle Funktionen und Prozeduren in der aktuellen Datenbank, auf die der aktuelle Benutzer Zugriff hat (indem er der Eigentümer ist oder einige Privilegien hat).
Hier ist ein Beispiel für die Rückgabe einer Liste von Funktionen:
SELECT
routine_name
FROM
information_schema.routines
WHERE
routine_type = 'FUNCTION'
AND
routine_schema = 'public';
Funktioniert in diesem Beispiel nur mit dem public
Schema werden zurückgegeben. Fühlen Sie sich frei, bei Bedarf weitere Spalten hinzuzufügen.
Der pg_proc
Katalog
Der pg_catalog.pg_proc
Katalog speichert Informationen über Funktionen, Prozeduren, Aggregatfunktionen und Fensterfunktionen.
Wir können dies mit dem pg_catalog.pg_namespace
verbinden catalog, um die Ergebnisse nur nach Prozeduren mit dem public
zu filtern Namensraum:
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';
Wir haben nach prokind
gefiltert von f
um die Ergebnisse auf normale Funktionen zu beschränken.
Die möglichen Werte sind f
für eine normale Funktion p
für eine Prozedur a
für eine Aggregatfunktion oder w
für eine Fensterfunktion.
Der \df
Befehl
Bei der Verwendung von psql können wir den \df
verwenden Befehl:
\df
Standardmäßig gibt dies nur vom Benutzer erstellte Objekte zurück. Sie können alternativ ein Muster oder den S
angeben Modifikator zum Einschließen von Systemobjekten.
Hier ist ein Beispiel für die Bereitstellung eines Musters:
\df *key*
Dieses Beispiel schränkt die Ergebnisse auf nur die Funktionen/Prozeduren mit dem Text key
ein in ihrem Namen.
Beachten Sie, dass dieser Befehl auch gespeicherte Prozeduren zurückgibt. Der Routinentyp (z. B. func
, proc
) ist in einem type
aufgelistet Spalte in der Ausgabe.