CREATE FUNCTION в PostgreSQL: создание функции

Функции в PostgreSQL позволяют автоматизировать выполнение операций, упрощая работу с базой данных. Они могут возвращать данные, изменять таблицы и выполнять другие действия.

Синтаксис

Для создания функции используется команда CREATE FUNCTION или CREATE OR REPLACE FUNCTION. Второй вариант позволяет обновлять функцию без её удаления:

CREATE OR REPLACE FUNCTION имя_функции(параметры)
RETURNS возвращаемый_тип
LANGUAGE язык
AS $$
    тело_функции
$$;

Основные элементы функции:

  • имя_функции — название функции.
  • параметры — входные данные.
  • возвращаемый_тип — тип данных, который вернёт функция.
  • язык — язык программирования.
  • тело_функции — код, который выполняется при вызове функции.

Пример создания функции

Функция, которая складывает два числа:

CREATE FUNCTION add_numbers(_a integer, _b integer)
RETURNS integer
LANGUAGE plpgsql
AS $$
BEGIN
    RETURN _a + _b;
END;
$$;

Вызов функции:

SELECT add_numbers(5, 10);

Функции для изменения данных

Функции могут добавлять, изменять и удалять записи в таблицах. Пример вставки новой строки:

CREATE FUNCTION add_employee(_name text, _age integer)
RETURNS void
LANGUAGE plpgsql
AS $$
BEGIN
    INSERT INTO employees (name, age) VALUES (_name, _age);
END;
$$;

Функции, возвращающие таблицу

Функция может возвращать набор данных:

CREATE FUNCTION get_employees()
RETURNS TABLE(id integer, name text, age integer)
LANGUAGE sql
AS $$
    SELECT employees.id, employees.name, employees.age FROM employees;
$$;

Вызов функции:

SELECT * FROM get_employees();