diff --git a/mnoskov/postgresql/1. Основы/Создание_и_изменение_таблиц_и_данных/DDL_create_first_tables.sql b/mnoskov/postgresql/1. Основы/1. Создание_и_изменение_таблиц_и_данных/DDL_create_first_tables.sql similarity index 100% rename from mnoskov/postgresql/1. Основы/Создание_и_изменение_таблиц_и_данных/DDL_create_first_tables.sql rename to mnoskov/postgresql/1. Основы/1. Создание_и_изменение_таблиц_и_данных/DDL_create_first_tables.sql diff --git a/mnoskov/postgresql/1. Основы/Создание_и_изменение_таблиц_и_данных/DML_first_inserts_in_tables.sql b/mnoskov/postgresql/1. Основы/1. Создание_и_изменение_таблиц_и_данных/DML_first_inserts_in_tables.sql similarity index 100% rename from mnoskov/postgresql/1. Основы/Создание_и_изменение_таблиц_и_данных/DML_first_inserts_in_tables.sql rename to mnoskov/postgresql/1. Основы/1. Создание_и_изменение_таблиц_и_данных/DML_first_inserts_in_tables.sql diff --git a/mnoskov/postgresql/1. Основы/Базовый_SQL/DQL_basic_SQL_practice.sql b/mnoskov/postgresql/1. Основы/2. Базовый_SQL/DQL_basic_SQL_practice.sql similarity index 100% rename from mnoskov/postgresql/1. Основы/Базовый_SQL/DQL_basic_SQL_practice.sql rename to mnoskov/postgresql/1. Основы/2. Базовый_SQL/DQL_basic_SQL_practice.sql diff --git a/mnoskov/postgresql/1. Основы/Фильтрация/DQL_filtration_practice.sql b/mnoskov/postgresql/1. Основы/3. Фильтрация/DQL_filtration_practice.sql similarity index 100% rename from mnoskov/postgresql/1. Основы/Фильтрация/DQL_filtration_practice.sql rename to mnoskov/postgresql/1. Основы/3. Фильтрация/DQL_filtration_practice.sql diff --git a/mnoskov/postgresql/9. Оптимизация/1. Транзакции/DQL_transactions_practice.sql b/mnoskov/postgresql/9. Оптимизация/1. Транзакции/DQL_transactions_practice.sql new file mode 100644 index 0000000..c4a8939 --- /dev/null +++ b/mnoskov/postgresql/9. Оптимизация/1. Транзакции/DQL_transactions_practice.sql @@ -0,0 +1,26 @@ +-- Задание 1. Оформление закзаза +INSERT INTO mnoskov.orders (id, user_id, order_date, status) VALUES + (9, 10, '2026-03-13', 'paid'), + (10, 10, '2026-03-14', 'paid'); + +INSERT INTO mnoskov.order_items (order_id, product_id, quantity, price_at_purchase) VALUES + (9, 3, 2, 88000), + (10, 6, 1, 5900); + +UPDATE mnoskov.products +SET in_stock = FALSE +WHERE id IN(3, 6); +-- Если выполнятся не все шаги, то транзакция откатится и все останется как было +-- Потому что заказ если оформляется, то полностью, частично он выполняться не должен + + +-- Задание 2 +-- При таком сценарии все должно откатаиться к самому началу, ничего не сохранится +-- Если не делать rollback, то можно получить заказы без продуктов, или без стомости, или полностью оформленный заказ, но продуктов нет в наличии +-- Любые 'битые' заказы повлияют на отчеты и витрины + + +-- Задание 3 +-- При изменении цены товара в products, это действие могут начать выполнять два человека одновременное, и если это не будет транзакцией то получится непонятно что, а если как транзакция, то сначала запишется 1 результат, а потом 2, и не будет никаких ошибок +-- Если выполняетя как транзакция, то просто откатится назад и все будет супер +-- Тк база сама откатывает транзакции в случае надобности, это освобождает инженера от доли ответственности \ No newline at end of file