Функции и Хранимые процедуры SQL 🔎 Функция SQL предназначена для выполнения логики над данными с учетом входных параметров функции и возвращения одного значения, которое может быть либо скалярным (например, строка, число), либо табличным (набор строк). Функции обычно вызываются как часть выражения в SQL запросах и могут использоваться, например, для вычисления значения колонки, условий фильтрации в WHERE или как часть JOIN. Т.е. функции обычно включают в себя выполнение SELECT запросов, либо применение логических, математических функций с заданными параметрами. 🔎 Хранимая процедура включает в себя набор инструкций SQL, который сохранен под определенным именем и выполняется как единая операция. Хранимые процедуры могут принимать входные параметры, выполнять комплексные операции, включать логику управления потоком (например, условные конструкции IF и циклы LOOP), выполнять операции DML (create, insert, delete). ✏️ Сравнение функций и хранимых процедур: 1. Возвращаемые значения: - Функции: Всегда возвращают значение. Функция может возвращать одно значение (скалярное) или набор строк (таблицу). Возвращаемый тип данных должен быть указан при определении функции. - Хранимые процедуры: Не обязательно возвращают значения. В PostgreSQL, процедуры могут возвращать результат через выходные параметры (OUT), но они могут также быть использованы для выполнения операций без возвращения данных. 2. Вызов: - Функции: Могут вызываться внутри SELECT запросов, либо вызываться как результат самого запроса, например SELECT название_функции() - Хранимые процедуры: Вызов хранимой процедуры выполняется командой CALL название_процедуры() 3. Транзакции: - Функции: Обычно выполняются внутри транзакции вызывающего запроса и не могут управлять транзакциями самостоятельно (не могут выполнять команды COMMIT и ROLLBACK). - Хранимые процедуры: Могут включать команды управления транзакциями. Это позволяет процедурам выполнять несколько транзакций в рамках одного вызова. 4. Использование: - Функции: часто используются в запросах SQL как часть выражения в SELECT, WHERE или JOIN и для вычислений, которые требуют возвращения результата. - Хранимые процедуры: чаще используются для выполнения набора действий, которые могут включать несколько разных SQL операций, включая изменение схемы, обновление данных, управление пользователями и т. д. Статьи на эту тему: 📍 Функции и хранимые процедуры в SQL: зачем нужны и как применять в реальных примерах 📍Документация функций PostgreSQL 📍Документация процедур PostgreSQL 📍Stored Procedure vs Function in PostgreSQL
2262 читали · 1 год назад
Миграция на PostgreSQL
1. Риски миграции с MS SQL на PostgreSQL Рассмотрим основные риски миграции: 1. Комплексность миграции. Перенос базы данных из MS SQL в PostgreSQL может быть крайне сложным процессом, так как эти две системы управления базами данных используют разные языки программирования и структуры данных. 2. Совместимость существующих приложений. Будучи разработанным на MS SQL, Ваше приложение может использовать функциональность, которую PostgreSQL не поддерживает. Это может вызвать проблемы при миграции, поскольку необходимо изменять приложение, чтобы оно соответствовало особенностям PostgreSQL. 3. Потеря данных...