Ошибка баланса моего триггера SQL
Я получил 4 таблицы, которые называют addproduct, sellproduct, reportfoundproduct, productbalance
я хочу сделать триггер для обновления количества остатка в таблице баланса продуктов после вставки данных в эти три таблицы (addproduct, sellproduct, reportfoundproduct)
ниже мой триггер в таблице sellproduct:
CREATE
DEFINER=`root`@`localhost`
TRIGGER `user`.`bad1`
AFTER INSERT ON `user`.`sellproduct`
FOR EACH ROW
BEGIN
UPDATE productbalance
SET Quantity_OnHand =(Quantity_OnHand- (select (sell_Quantity) from (select * from sellproduct) as temp3))
WHERE Product_ID= productbalance.Product_ID ;
END$$
его баланс количества средств = добавить продукт - продукт продажи
но когда триггер исключен, меняются все мои данные строки - продукт продаж...
как решить, если я просто хочу изменить идентификатор продукта, который изменился в стоимости?
пожалуйста помогите... спасибо
1 ответ
Решение
Вам нужно использовать НОВУЮ таблицу псевдо, чтобы вы использовали информацию только в новой строке
CREATE DEFINER=`root`@`localhost` TRIGGER `user`.`bad1`
AFTER INSERT ON `user`.`sellproduct` FOR EACH ROW
BEGIN
UPDATE productbalance
SET Quantity_OnHand = Quantity_OnHand - NEW.sell_Quantity
WHERE Product_ID = NEW.Product_ID ;
END$$