Переменная типа record

Статья основана на восьмом видео из 31 темы курса SQL 2.0 — PL/pgSQL в PostgreSQL от Аристова Евгения, который является логическим продолжением курса SQL c 0. Ссылки на видео на платформах RUTUBE и VK видео.

В данной статье подробно разбираются переменные типа record, его варианты использования и ограничения.

В прошлой статье мы разобрали операторы ветвления if и case, их формы, где и как могут быть применяться.

Презентация и исходники доступны по ссылке.

Тип record

Тип record — анонимный тип данных может быть как скалярным, так и составным. Используется тогда, когда мы заранее не знаем состав получаемых данных — количество и тип аргументов.

Это гибкая структура данных, которая позволяет хранить строку результата запроса или набор полей без строгой привязки к конкретной таблице. Она широко используется в процедурном коде (PL/pgSQL) для обработки данных, когда структура заранее неизвестна или может меняться.

Ограничения и нюансы:

❖ Нельзя использовать вне процедурного блока (только в PL/pgSQL).

❖ Тип определяется в момент присвоения — нельзя заранее обратиться к полям, которые не были выбраны в запросе.

❖ Нельзя вернуть RECORD из функции без указания структуры:

— Ошибка: структура не определена

SELECT * FROM get_employees();

— Правильно: указание структуры при вызове

SELECT * FROM get_employees() AS (id INT, name TEXT);

В следующей теме разберём использование команды SELECT INTO.


Опубликовано

в

Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

одиннадцать − один =