From 565fa62d9871b9d81a06e2a1c9fd77462d735b04 Mon Sep 17 00:00:00 2001 From: 1ntact Date: Tue, 23 Jun 2026 19:54:48 +0200 Subject: [PATCH 1/4] Done! --- task.sql | 52 +++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 51 insertions(+), 1 deletion(-) diff --git a/task.sql b/task.sql index 8adf22b..9719b12 100644 --- a/task.sql +++ b/task.sql @@ -2,10 +2,60 @@ USE ShopDB; -- Some data should be created outside the transaction (here) +DROP DATABASE 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 NULL, + 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'); -- Start the transaction START TRANSACTION; --- And some data should be created inside the transaction +INSERT INTO Orders (CustomerID, Date) +VALUES (1, '2026-06-23'); + +INSERT INTO OrderItems (OrderID, ProductID, Count) +VALUES (LAST_INSERT_ID(), 1, 1); COMMIT; \ No newline at end of file From 5401dd5cb75346a4dd6567ed95e34092f9cd3102 Mon Sep 17 00:00:00 2001 From: 1ntact Date: Tue, 23 Jun 2026 20:08:52 +0200 Subject: [PATCH 2/4] Done!! --- task.sql | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/task.sql b/task.sql index 9719b12..e623716 100644 --- a/task.sql +++ b/task.sql @@ -58,4 +58,8 @@ VALUES (1, '2026-06-23'); INSERT INTO OrderItems (OrderID, ProductID, Count) VALUES (LAST_INSERT_ID(), 1, 1); -COMMIT; \ No newline at end of file +UPDATE Products SET WarehouseAmount = WarehouseAmount - 1 WHERE ID = 1; + +SELECT WarehouseAmount FROM Products WHERE ID = 1; + +COMMIT; \ No newline at end of file From 039517e3eca00318d0557e1a06284344382580d9 Mon Sep 17 00:00:00 2001 From: 1ntact Date: Tue, 23 Jun 2026 20:12:14 +0200 Subject: [PATCH 3/4] Done!!! --- task.sql | 54 +----------------------------------------------------- 1 file changed, 1 insertion(+), 53 deletions(-) diff --git a/task.sql b/task.sql index e623716..a54545a 100644 --- a/task.sql +++ b/task.sql @@ -1,56 +1,6 @@ --- Use our database -USE ShopDB; - --- Some data should be created outside the transaction (here) -DROP DATABASE 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 NULL, - 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'); - --- Start the transaction -START TRANSACTION; +START TRANSACTION; INSERT INTO Orders (CustomerID, Date) VALUES (1, '2026-06-23'); @@ -60,6 +10,4 @@ VALUES (LAST_INSERT_ID(), 1, 1); UPDATE Products SET WarehouseAmount = WarehouseAmount - 1 WHERE ID = 1; -SELECT WarehouseAmount FROM Products WHERE ID = 1; - COMMIT; \ No newline at end of file From d19c9fed280e3a5ab38f850df85734aa93c70003 Mon Sep 17 00:00:00 2001 From: 1ntact Date: Tue, 23 Jun 2026 20:16:46 +0200 Subject: [PATCH 4/4] Done!!!! --- task.sql | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/task.sql b/task.sql index a54545a..a5481ec 100644 --- a/task.sql +++ b/task.sql @@ -1,10 +1,10 @@ USE ShopDB; -START TRANSACTION; - INSERT INTO Orders (CustomerID, Date) VALUES (1, '2026-06-23'); +START TRANSACTION; + INSERT INTO OrderItems (OrderID, ProductID, Count) VALUES (LAST_INSERT_ID(), 1, 1);