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

3 modi per elencare tutte le funzioni in PostgreSQL

Ecco tre opzioni per elencare tutte le funzioni in un database PostgreSQL.

Il information_schema.routines Visualizza

Questa vista contiene tutte le funzioni e le procedure nel database corrente a cui l'utente corrente ha accesso (in quanto proprietario o in possesso di qualche privilegio).

Ecco un esempio di restituzione di un elenco di funzioni:

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

In questo esempio, funziona solo con public schema vengono restituiti. Sentiti libero di includere più colonne, se necessario.

Il pg_proc Catalogo

Il pg_catalog.pg_proc il catalogo memorizza informazioni su funzioni, procedure, funzioni aggregate e funzioni della finestra.

Possiamo unirci a questo con il pg_catalog.pg_namespace catalog per filtrare i risultati alle sole procedure con il public spazio dei nomi:

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

Abbiamo filtrato su un prokind di f per limitare i risultati alle sole normali funzioni.

I valori possibili sono f per una normale funzione, p per una procedura, a per una funzione aggregata, o w per una funzione finestra.

Il \df Comando

Quando usiamo psql, possiamo usare il \df comando:

\df

Per impostazione predefinita, restituisce solo oggetti creati dall'utente. In alternativa puoi fornire un pattern o la S modificatore per includere oggetti di sistema.

Ecco un esempio di fornitura di un modello:

\df *key*

Quell'esempio restringe i risultati solo a quelle funzioni/procedure con il testo key a loro nome.

Si noti che questo comando restituisce anche le stored procedure. Il tipo di routine (ad es. func , proc ) è elencato in un type colonna nell'output.