sql >> Databáze >  >> RDS >> PostgreSQL

3 způsoby, jak vypsat všechny funkce v PostgreSQL

Zde jsou tři možnosti pro výpis všech funkcí v databázi PostgreSQL.

information_schema.routines Zobrazit

Toto zobrazení obsahuje všechny funkce a procedury v aktuální databázi, ke kterým má aktuální uživatel přístup (tím, že je vlastníkem nebo má nějaké oprávnění).

Zde je příklad vrácení seznamu funkcí:

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

V tomto příkladu funguje pouze s public schéma se vrátí. V případě potřeby můžete zahrnout více sloupců.

pg_proc Katalog

pg_catalog.pg_proc katalog ukládá informace o funkcích, procedurách, agregačních funkcích a funkcích oken.

Můžeme se k tomu připojit pomocí pg_catalog.pg_namespace katalogu filtrovat výsledky pouze na procedury s public jmenný prostor:

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

Filtrovali jsme na prokind z f omezit výsledky pouze na normální funkce.

Možné hodnoty jsou f pro normální funkci p pro proceduru a pro agregační funkci nebo w pro funkci okna.

\df Příkaz

Při použití psql můžeme použít \df příkaz:

\df

Ve výchozím nastavení vrací pouze objekty vytvořené uživatelem. Alternativně můžete zadat vzor nebo S modifikátor pro zahrnutí systémových objektů.

Zde je příklad poskytnutí vzoru:

\df *key*

Tento příklad zužuje výsledky pouze na funkce/procedury s textem key jejich jménem.

Všimněte si, že tento příkaz také vrací uložené procedury. Typ rutiny (např. func , proc ) je uveden v type sloupec ve výstupu.


  1. Jak zobrazit indexy pro databázi nebo tabulku v MySQL?

  2. Escape řetězec v SQL Server, takže je bezpečné použít ve výrazu LIKE

  3. PyInstaller, spec file, ImportError:Žádný modul s názvem 'blah'

  4. T-SQL vs SQL