@idgarik05

Как сделать триггер на удаление строчки?

Требуется сделать два триггера для базы данных магазина.
Первый триггер будет удалять строчку в таблице Продукты, если значение в столбце Кол-во товара этой строчки будет равняться нулю.
Следующий триггер должен быть сделан для таблицы Заказы, он должен запретить сделать заказ, если количество заказанного товара будет больше чем количество товара на складе, это количество хранится в табличке Продукты.
Например, триггер, которые обновляет количество товара на складе после создания заказа.
create trigger Trigger_Quantity_Update
on Order_list
after insert
as
update Product
set Quantity_in_stock = Quantity_in_stock - (select Product_quantity from inserted where Product.ID_Product = inserted.ID_Product)
where ID_Product in (select ID_Product from inserted)
  • Вопрос задан
  • 65 просмотров
Решения вопроса 1
tsklab
@tsklab Куратор тега SQL Server
Здесь отвечаю на вопросы.
удалять строчку в Продукты, если Кол-во товара равняться нулю
Нельзя, так как у вас есть предыдущие заказы с этим товаром. И должна быть связь между этими таблицами, которая не даст это сделать.
Вредные советы

Добавьте в ваш триггер
DELETE Product WHERE Quantity_in_stock = 0


Заказы, запретить сделать заказ, если заказанного товара больше чем на складе
TRIGGER INSTEAD OF
Вредные советы

Можно обойтись без триггера, сделайте для поля проверку
CHECK (Quantity_in_stock >= 0)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
09 дек. 2023, в 14:02
1000 руб./за проект
09 дек. 2023, в 13:43
1500 руб./за проект
09 дек. 2023, в 12:45
10000 руб./за проект