Я в настоящее время работает над мини-проектом, который включает в себя несколько таблиц: Invoice
и Inventory
Insert Триггер Вычитание значения
Оба эти таблицы имеют Product_Id
и Quantity
, и мне нужно написать триггер, так что, когда создается новый Invoice
, он уменьшает количество продукта в таблице Inventory
. Любая помощь приветствуется.
CREATE TRIGGER tr_UpdateQuantity
ON Invoice
AFTER INSERT
AS
BEGIN
UPDATE Inventory
SET Inventory.Quantity = Inventory.Quantity - Invoice.Quantity
FROM Invoice
WHERE Inventory.Product_Id = Invoice.Product_Id
END
Какой DBMS? (Большинство dbms-продуктов не соответствуют требованиям ANSI SQL, когда речь заходит о триггерах.) – jarlh
Если у вас также есть таблица, в которой записаны полученные товары, было бы гораздо лучше покончить с столбцом количества в таблице инвентаря целиком. Вы всегда сможете * вычислить количество на основе транзакционных данных (вы могли бы реализовать некоторые индексированные представления, чтобы эта информация была легко доступна, если это необходимо). Всегда предпочитайте не хранить * рассчитанные * данные. –