Хранимые процедуры — это скомпилированные и сохраненные в базе данных инструкции, которые имеют имя и выполняются по этому имени в запросе. Полезно использовать для сложных и частых одинаковых запросов, чтобы не писать запрос каждый раз с нуля.
Создадим процедуру добавления нового заказчика в таблицу заказчиков в PostrgreSQL:
CREATE OR REPLACE PROCEDURE AddNewCustomer (
FirstName VARCHAR(50)
LastName VARCHAR(50)
Email VARCHAR(50)
OUT message TEXT -- Выходной параметр
)
Далее определим границы процедуры, внутри которых опишем ее поведение:
LANGUAGE plpgsql
AS $$ -- Открываем границы процедуры
BEGIN -- Начало процедуры
-- тело функции
END; -- Конец процедуры
$$; -- Закрываем границы
Теперь определим непосредственно тело процедуры внутри описанных границ:
IF EXISTS (SELECT 1 FROM Customers WHERE Email = AddNewCustomer.Email) THEN
message := 'Клиент с таким email уже существует';
ELSE
INSERT Customers (FirstName, LastName, Email)
VALUES (AddNewCustomer.FirstName, AddNewCustomer.LastName, AddNewCustomer.Email);
message := 'Клиент успешно добавлен';
END IF;
Вызов процедуры:
CALL AddNewCustomer('Иван', 'Иванов', 'ivan.ivanov@example.com', '');🔥 Используете этот метод как шаблон для создания процедур в ваших СУБД и внедряйте хранимые процедуры в свои запросы!
➡️ SQL Ready | #практика