use Lucky_Shrub; Основні завдання: • Розробка INSERT, UPDATE та DELETE тригерів. ################################################ ############## Умови завдань ############### ################ Завдання 1: ############### 1. Створіть INSERT триггер з назвою ProductSellPriceInsertCheck. Тригер має перевірити, чи ціна SellPrice продукту менша ніж BuyPrice після того як новий продук було додано у таблицю Products. Якщо таке станеться, у таблицю Notifications має бути додане сповіщення для відділу продажів. Відділ продажів має переконатися, що таке значення було введено не помилково. Сповіщення слід додати у такому форматі: 'Для продукту з id ' + ProductID + 'було внесено значення SellPrice яке менше чи рівне BuyPrice' 2. Перегляньте існуючі тригери 3. Перевіте роботу тригера. Додайте запис у таблицю Products із ціною закупки вищою ніж ціна продажу, на прклад: P7, Агрополотно, 70, 70, 21; 4. Перевірте наявність запису у таблиці Products 5. Перевірте наявність запису у таблиці Notifications drop trigger ProductSellPriceInsertCheck; create trigger if not exists ProductSellPriceInsertCheck after insert on Products for each row begin if new.SellPrice <= new.BuyPrice then insert into Notifications (Notification, DateTime) values (concat('Для продукту з id ', new.ProductID, 'було внесено значення SellPrice яке менше чи рівне BuyPrice'), now()); end if; end; insert into Products ( ProductID, ProductName, BuyPrice, SellPrice, NumberOfItems ) values ( 'P7', 'Агрополотно', 70, 70, 21 ); show triggers like 'Products'; select * from Notifications; select * from Products; delete from Products where ProductID = 'P7'; ################################################ ################ Завдання 2: ############### 1. Створіть UPDATE тригер з назвою ProductSellPriceUpdateCheck. Цей тригер повинен перевіряти чи продукти не оновлюються з ціною SellPrice, яка менша чи рівна ціні BuyPrice. Якщо це так, слід додати сповіщення до таблиці Notifications для відділу продажів щоб вони переконалися, що ціни на продукти не оновлено з некоректними значеннями. Цей тригер надсилає сповіщення у tаблицю Notifications, яке попереджає відділ продажів про проблему. Сповіщення має бути додано у такому форматі: ProductID + 'було оновлено зі значенням SellPrice = ' + SellPrice + 'яке менше чи рівне значення BuyPrice' 2. Перегляньте тригери 3. Перевірте роботу тригера. Наприклад, змініть значення SellPrice на 65 для запису з ID продукту P6 таблиці Products 4. Перевірте наявність запису у таблиці Products 5. Перевіряємо наявність запису у таблиці Notifications drop trigger if exists ProductSellPriceUpdateCheck; create trigger if not exists ProductSellPriceUpdateCheck before update on Products for each row begin if new.SellPrice <= new.BuyPrice then insert into Notifications (Notification, DateTime) values (concat(new.ProductID, 'було оновлено зі значенням SellPrice = ', new.SellPrice, 'яке менше чи рівне значення BuyPrice'), now()); end if; end; update Products set SellPrice = 60 where ProductID = 'P1'; select * from Products where ProductID = 'P1'; select * from Notifications; ################################################ ################ Завдання 3: ############### 1. Створіть тригер DELETE з назвою NotifyProductDelete. Цей тригер повинен додати сповіщення до таблиці Notifications для відділу продажів після того, як продукт було видалено з таблиція Products. Сповіщення повинно бути у такому форматі: 'Продукт з id' + ProductID + 'було видалено' 2. Перегляньте тригери 3. Перевірте роботу тригра. Наприклад, видаліть один запис із таблицю Products з ID продукту P7 4. Перевірте наявність запису у таблиці Products 5. Перевірте наявність запису у таблиці Notifications drop trigger NotifyProductDelete; create trigger if not exists NotifyProductDelete after delete on Products for each row begin insert into Notifications (Notification, DateTime) values (concat('Продукт з id ', old.ProductID, 'було видалено'), now()); end; show triggers like 'Products'; delete from Products where ProductID = 'P1'; select * from Products; select * from Notifications;