PostgreSQL Create Function Examples

PostgreSQL stored functions can be created by connecting to a PostgreSQL database and executing a create function statement. Below is the syntax for the create function statement:

CREATE OR REPLACE FUNCTION function_name(param1 data_type, param2 data_type)
 RETURNS data_type
 LANGUAGE language_name AS
$function$
 --function body
$function

The variables that need filled in by the user are the following:

1. function_name: Enter the name of the function here, for example, get_salary

2. parameter_list: The parameter list contains the name of the parameter and the data type of the parameter. Here is an example parameter list:

i1 integer, d1 date

3. Returns Data Type: The type of data that is returned needs to be specified, for example, int, date, etc.

4. language_name: Built-in languages supported by PostgreSQL are sql and plpgsql. If the Python language pack is installed in the database, the Python language is also supported using the plpythonu language name.

5. function_body: The function body contains the commands to execute. The commands are written in the language specified by the language_name, for example, SQL.

The following example function named get_salary has one parameter and returns an integer. The parameter is the employee id. This function returns the salary for the employee with the passed in employee id. This function is written using the SQL language.

To call the function below, a simple SQL select statement can be executed. Here is an example:

select get_salary (8323435); CREATE OR REPLACE FUNCTION public.get_salary(id int)
 RETURNS integer
 LANGUAGE sql
AS $function $SELECT salary FROM employee WHERE employee_id = id; 
$function$

The following create function example creates a function named increment. This function takes the passed in integer and adds 1 to it. This function is written in the PostgreSQL procedural language plpgsql. This function can be called using the following syntax:

select increment(100);

CREATE OR REPLACE FUNCTION public.increment(i integer)
 RETURNS integer
 LANGUAGE plpgsql
AS $function$
    BEGIN
      RETURN i + 1;
    END;
$function$

If you are looking for a tool that provides the capability to edit, create, call, and view PostgreSQL stored functions, please check out RazorSQL. It has a free, full-featured 30-day trial and can be downloaded from the following: RazorSQL Download.