/
spirzen
/
it-code-examples
Обзор
Документация
Войти
/
spirzen
/
it-code-examples
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
examples/sql/sql-885-009/main.sql
43 строки
966 B
Spirzen
Code migration pack
09 июн 2026, 01:41
09 июн 2026, 01:41
cebc284
Код
Авторство
О чём код?
CREATE OR REPLACE PROCEDURE process_order( p_order_id integer, p_new_status varchar ) LANGUAGE plpgsql AS $$ DECLARE v_old_status varchar; v_user_id integer; BEGIN -- Сохраняем текущее состояние SELECT status, user_id INTO v_old_status, v_user_id FROM orders WHERE id = p_order_id; -- Обновляем статус UPDATE orders SET status = p_new_status, updated_at = CURRENT_TIMESTAMP WHERE id = p_order_id; -- Журналируем изменение INSERT INTO order_status_log ( order_id, old_status, new_status, changed_at, changed_by ) VALUES ( p_order_id, v_old_status, p_new_status, CURRENT_TIMESTAMP, current_user ); -- Фиксируем транзакцию COMMIT; END; $$; -- Вызов процедуры CALL process_order(456, 'shipped');