From 60651f1b640d2a1bc00e74464c5e1fb8de65a48e Mon Sep 17 00:00:00 2001 From: Petro Kravchenko Date: Thu, 4 Jun 2026 20:46:07 +0300 Subject: [PATCH 1/5] Solution --- task.sql | 3 +++ 1 file changed, 3 insertions(+) diff --git a/task.sql b/task.sql index 8adf22b..7fdf694 100644 --- a/task.sql +++ b/task.sql @@ -5,6 +5,9 @@ USE ShopDB; -- Start the transaction START TRANSACTION; +INSERT INTO Orders (CustomerID, Date) VALUES (1, '2024-06-01'); +INSERT INTO OrderItems (OrderID, ProductID, Count) VALUES (LAST_INSERT_ID(), 1, 1); +UPDATE Products SET WarehouseAmount = WarehouseAmount - 1 WHERE ID = 1; -- And some data should be created inside the transaction From 84e5d7fbf6c13f732726531ecb1aada1c8393b2f Mon Sep 17 00:00:00 2001 From: Petro Kravchenko Date: Thu, 4 Jun 2026 20:54:02 +0300 Subject: [PATCH 2/5] Fix transaction --- task.sql | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/task.sql b/task.sql index 7fdf694..2b6b9a9 100644 --- a/task.sql +++ b/task.sql @@ -2,13 +2,12 @@ USE ShopDB; -- Some data should be created outside the transaction (here) - +INSERT INTO Orders (CustomerID, Date) VALUES (1, '2024-06-01'); -- Start the transaction START TRANSACTION; -INSERT INTO Orders (CustomerID, Date) VALUES (1, '2024-06-01'); INSERT INTO OrderItems (OrderID, ProductID, Count) VALUES (LAST_INSERT_ID(), 1, 1); -UPDATE Products SET WarehouseAmount = WarehouseAmount - 1 WHERE ID = 1; -- And some data should be created inside the transaction +UPDATE Products SET WarehouseAmount = WarehouseAmount - 1 WHERE ID = 1; COMMIT; \ No newline at end of file From 259bb69e6aac11d5b0298dd84d5d1ba6f9c5aa84 Mon Sep 17 00:00:00 2001 From: Petro Kravchenko Date: Thu, 4 Jun 2026 20:55:43 +0300 Subject: [PATCH 3/5] Fix data in create orders --- task.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/task.sql b/task.sql index 2b6b9a9..b930f4f 100644 --- a/task.sql +++ b/task.sql @@ -2,7 +2,7 @@ USE ShopDB; -- Some data should be created outside the transaction (here) -INSERT INTO Orders (CustomerID, Date) VALUES (1, '2024-06-01'); +INSERT INTO Orders (CustomerID, Date) VALUES (1, '2023-01-01'); -- Start the transaction START TRANSACTION; INSERT INTO OrderItems (OrderID, ProductID, Count) VALUES (LAST_INSERT_ID(), 1, 1); From 44f720d72be18f2f0884bf93feacbb1042274c27 Mon Sep 17 00:00:00 2001 From: Petro Kravchenko Date: Thu, 4 Jun 2026 21:31:49 +0300 Subject: [PATCH 4/5] Add drop --- task.sql | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/task.sql b/task.sql index b930f4f..8cc5750 100644 --- a/task.sql +++ b/task.sql @@ -1,5 +1,6 @@ --- Use our database -USE ShopDB; +DROP DATABASE IF EXISTS ShopDB; +CREATE DATABASE ShopDB; +USE ShopDB; -- Some data should be created outside the transaction (here) INSERT INTO Orders (CustomerID, Date) VALUES (1, '2023-01-01'); From e144f5500860efbeb0754f1b0e11041e1a1fb113 Mon Sep 17 00:00:00 2001 From: Petro Kravchenko Date: Thu, 4 Jun 2026 23:12:39 +0300 Subject: [PATCH 5/5] Create db in code --- task.sql | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/task.sql b/task.sql index 8cc5750..9624f22 100644 --- a/task.sql +++ b/task.sql @@ -1,6 +1,47 @@ DROP DATABASE IF EXISTS ShopDB; CREATE DATABASE ShopDB; USE ShopDB; +CREATE TABLE Products ( + ID INT AUTO_INCREMENT, + Name VARCHAR(50), + Description VARCHAR(100), + Price INT, + WarehouseAmount INT, + PRIMARY KEY (ID) +); + +CREATE TABLE Customers ( + ID INT AUTO_INCREMENT, + FirstName VARCHAR(50), + LastName VARCHAR(50), + Email VARCHAR(50), + Address VARCHAR(50), + PRIMARY KEY (ID) +); + +CREATE TABLE Orders ( + ID INT AUTO_INCREMENT, + CustomerID INT, + FOREIGN KEY (CustomerID) REFERENCES Customers(ID) ON DELETE SET NULL, + Date DATE, + PRIMARY KEY (ID) +); + +CREATE TABLE OrderItems ( + ID INT AUTO_INCREMENT, + OrderID INT, + FOREIGN KEY (OrderID) REFERENCES Orders(ID) ON DELETE SET NULL, + ProductID INT, + Count INT, + FOREIGN KEY (ProductID) REFERENCES Products(ID) ON DELETE SET NULL, + PRIMARY KEY (ID) +); + +INSERT INTO Products (Name, Description, Price, WarehouseAmount) + VALUES ('AwersomeProduct', 'Product Desctiption', 5, 42); + +INSERT INTO Customers (FirstName, LastName, Email, Address) + VALUES ('John', 'Dou', 'j@dou.ua', 'far, far away'); -- Some data should be created outside the transaction (here) INSERT INTO Orders (CustomerID, Date) VALUES (1, '2023-01-01');