PostgreSQL | Как создать простую функцию, которая возвращает строку Hello World?

PostgreSQL | Как создать простую функцию, которая возвращает строку Hello World?

Код для создания функции на синтаксисе языка SQL:

--Создание функции, возвращающей Hello World
CREATE FUNCTION test1.fun_hello_world()
RETURNS text
LANGUAGE 'sql'
AS $BODY$
SELECT 'Hello World!';
$BODY$;

Скриншот из графического интерфейса pgAdmin 4:

Функция в PostgreSQL возвращающая строку Hello World
Функция в PostgreSQL возвращающая строку Hello World

Синтаксис команды CREATE FUNCTION внушительный. В нём много вариаций оформления и написания. Давайте по порядку.

 

Состав кода SQL

CREATE FUNCTION — сказали SQL, что будем создавать обычную функцию без проверки существования такой с таким именем

test1.fun_hello_world() — название схемы test1, в которой будем хранить данную функцию. Затем точка, отделяющая схему от названия функции. Затем название функции fun_hello_world. Затем пара круглых скобок, говорящая о том, что эта функция не принимает никаких параметров.

RETURNS — в нашем случае функция только ВОЗВРАЩАЕТ и ничего не ДЕЛАЕТ. Поэтому мы пишем RETURNS.

text — указывает тип возвращаемых данных из функции. Обычный текст произвольной длины.

LANGUAGE ‘sql’ — указывает, тело нашей функции будет написано на стандартном языке SQL.

AS — говорит о том, то дальше пойдёт код оформления тела функции.

$BODY$ — открывающий тег тела функции.

SELECT ‘Hello World!’; — Код, который выполняет наша функция при обращении к ней. Стандартный запрос на получение обычной строки.

$BODY$; — закрывающий тег тела функции и ТОЧКА с ЗАПЯТОЙ.

 

Что ещё?

Если в схеме уже существует функция с таким именем, то этот код не создаст её. Будет ошибка создания.

Есть возможность переписать её при помощи команды CREATE OR REPLACE FUNCTION. Но тут есть нюансы. Читайте официальную документацию по этому вопросу.

Волшебную команду SELECT нужно воспринимать как ГЛОБАЛЬНЫЙ ОБЪЕКТ, который умеет много чего делать.

 

Как вызвать функцию в PostgreSQL?

Для вызова нашей функции можно воспользоваться командой:

select test1.fun_hello_world();

Скрин:

Вызвали функцию Hello World в PostgreSQL через Запросник pgAdmin 4
Вызвали функцию Hello World в PostgreSQL через Запросник pgAdmin 4

 

Как удалить функцию в PostgreSQL?

Для удаления нашей функции, необходимо прописать команду:

drop function test1.fun_hello_world();

 

 

Информационные ссылки

Официальный сайт PostgreSQLhttps://www.postgresql.org

Команды SQLhttps://postgrespro.ru/docs/postgresql/14/sql-commands

Команда CREATE FUNCTIONhttps://postgrespro.ru/docs/postgresql/14/sql-createfunction

Команда SELECThttps://postgrespro.ru/docs/postgresql/14/sql-select

Графический интерфейс pgAdminhttps://www.pgadmin.org