How to display the function, procedure, triggers source code in postgresql?

后端 未结 8 576
别那么骄傲
别那么骄傲 2020-12-04 05:59

How to print functions and triggers sourcecode in postgresql? please let me know if any one know the query to display the function, triggers source code.

相关标签:
8条回答
  • 2020-12-04 06:07

    \df+ in psql gives you the sourcecode.

    0 讨论(0)
  • 2020-12-04 06:13

    Slightly more than just displaying the function, how about getting the edit in-place facility as well.

    \ef <function_name> is very handy. It will open the source code of the function in editable format. You will not only be able to view it, you can edit and execute it as well.

    Just \ef without function_name will open editable CREATE FUNCTION template.

    For further reference -> https://www.postgresql.org/docs/9.6/static/app-psql.html

    0 讨论(0)
  • 2020-12-04 06:15

    additionally to @franc's answer you can use this from sql interface:

    select 
        prosrc
    from pg_trigger, pg_proc
    where
     pg_proc.oid=pg_trigger.tgfoid
     and pg_trigger.tgname like '<name>'
    

    (taken from here: http://www.postgresql.org/message-id/Pine.BSF.4.10.10009140858080.28013-100000@megazone23.bigpanda.com)

    0 讨论(0)
  • 2020-12-04 06:19

    There are many possibilities. Simplest way is to just use pgAdmin and get this from SQL window. However if you want to get this programmatically then examinate pg_proc and pg_trigger system catalogs or routines and triggers views from information schema (that's SQL standard way, but it might not cover all features especially PostgreSQL-specific). For example:

    SELECT
        routine_definition 
    FROM
        information_schema.routines 
    WHERE
        specific_schema LIKE 'public'
        AND routine_name LIKE 'functionName';
    
    0 讨论(0)
  • 2020-12-04 06:23

    Here are few examples from PostgreSQL-9.5

    Display list:

    1. Functions: \df+
    2. Triggers : \dy+

    Display Definition:

    postgres=# \sf
    function name is required
    
    postgres=# \sf pg_reload_conf()
    CREATE OR REPLACE FUNCTION pg_catalog.pg_reload_conf()
     RETURNS boolean
     LANGUAGE internal
     STRICT
    AS $function$pg_reload_conf$function$
    
    postgres=# \sf pg_encoding_to_char
    CREATE OR REPLACE FUNCTION pg_catalog.pg_encoding_to_char(integer)
     RETURNS name
     LANGUAGE internal
     STABLE STRICT
    AS $function$PG_encoding_to_char$function$
    
    0 讨论(0)
  • 2020-12-04 06:23

    \sf function_name in psql yields editable source code of a single function.

    From https://www.postgresql.org/docs/9.6/static/app-psql.html:

    \sf[+] function_description This command fetches and shows the definition of the named function, in the form of a CREATE OR REPLACE FUNCTION command.

    If + is appended to the command name, then the output lines are numbered, with the first line of the function body being line 1.

    0 讨论(0)
提交回复
热议问题