From 9ef1c19f15ae392925547b4decc0687e0eda1e64 Mon Sep 17 00:00:00 2001 From: KostiukOleksandr Date: Mon, 11 May 2026 18:52:53 +0300 Subject: [PATCH 1/3] solution for task 3 transactions --- task.sql | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/task.sql b/task.sql index 8adf22b..f9d3884 100644 --- a/task.sql +++ b/task.sql @@ -1,11 +1,23 @@ --- Use our database + USE ShopDB; --- Some data should be created outside the transaction (here) +START TRANSACTION; + + +INSERT INTO Orders (CustomerID, Date) +VALUES (1, '2023-01-01'); + + +INSERT INTO OrderItems (OrderID, ProductID, Count) +VALUES (LAST_INSERT_ID(), 1, 1); + --- Start the transaction -START TRANSACTION; +UPDATE Products +SET WarehouseAmount = WarehouseAmount - 1 +WHERE ID = 1; --- And some data should be created inside the transaction +COMMIT; -COMMIT; \ No newline at end of file +SELECT * FROM Orders; +SELECT * FROM OrderItems; +SELECT * FROM Products; From a24348d3b210bd87511aa3a18abf036e7dd8ba7c Mon Sep 17 00:00:00 2001 From: KostiukOleksandr Date: Mon, 11 May 2026 19:02:59 +0300 Subject: [PATCH 2/3] fix: move Orders insert outside transaction --- task.sql | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/task.sql b/task.sql index f9d3884..55d5ee4 100644 --- a/task.sql +++ b/task.sql @@ -1,13 +1,9 @@ -USE ShopDB; +USE ShopDB; START TRANSACTION; -INSERT INTO Orders (CustomerID, Date) -VALUES (1, '2023-01-01'); - - INSERT INTO OrderItems (OrderID, ProductID, Count) VALUES (LAST_INSERT_ID(), 1, 1); @@ -18,6 +14,6 @@ WHERE ID = 1; COMMIT; -SELECT * FROM Orders; -SELECT * FROM OrderItems; -SELECT * FROM Products; + +INSERT INTO Orders (CustomerID, Date) +VALUES (1, '2023-01-01'); From d8b116c431d9b3201622dbb9dddaf7d30c25db11 Mon Sep 17 00:00:00 2001 From: KostiukOleksandr Date: Mon, 11 May 2026 19:54:37 +0300 Subject: [PATCH 3/3] 3 --- task.sql | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/task.sql b/task.sql index 55d5ee4..17739d9 100644 --- a/task.sql +++ b/task.sql @@ -1,12 +1,14 @@ - USE ShopDB; -START TRANSACTION; +INSERT INTO Orders (CustomerID, Date) +VALUES (1, '2023-01-01'); +SET @new_order_id = LAST_INSERT_ID(); -INSERT INTO OrderItems (OrderID, ProductID, Count) -VALUES (LAST_INSERT_ID(), 1, 1); +START TRANSACTION; +INSERT INTO OrderItems (OrderID, ProductID, Count) +VALUES (@new_order_id, 1, 1); UPDATE Products SET WarehouseAmount = WarehouseAmount - 1 @@ -14,6 +16,6 @@ WHERE ID = 1; COMMIT; - -INSERT INTO Orders (CustomerID, Date) -VALUES (1, '2023-01-01'); +SELECT * FROM Orders; +SELECT * FROM OrderItems; +SELECT * FROM Products;