Писал ли хранимые процедуры и функции в SQL
Python
Senior
VK
Писал ли хранимые процедуры и функции в SQL
Ответы
Да, писал хранимые процедуры и функции в SQL. В PostgreSQL это выглядит так:
```
-- Процедура для обновления цены товара
CREATE OR REPLACE PROCEDURE update_product_price(
product_id INT,
new_price DECIMAL
)
LANGUAGE SQL
AS $$
UPDATE products
SET price = new_price
WHERE id = product_id;
$$;
-- Функция для расчета скидки
CREATE OR REPLACE FUNCTION calculate_discount(
price DECIMAL,
discount_percent INT
) RETURNS DECIMAL
LANGUAGE SQL
AS $$
SELECT price * (100 - discount_percent) / 100;
$$;
```
Основные отличия:
- Процедуры выполняют действия (INSERT/UPDATE/DELETE), не возвращают значения
- Функции возвращают результат вычислений
- В PostgreSQL 11+ процедуры поддерживают транзакции внутри себя
Часто использовал их для сложной бизнес-логики, которая выполняется на стороне БД для оптимизации производительности.