Работал над этим часами .. так близко.MySQL Trigger From Previous Row
CREATE TRIGGER `sold_diff` BEFORE INSERT ON `inventory_history`
FOR EACH ROW begin
declare prev_quantity int(11) default 0;
select quantity
into prev_quantity
from inventory_history
limit 1;
set NEW.sold = prev_quantity - NEW.quantity;
end
Вот результат:
не могу понять, почему он делает беговую бирку на sold
, когда мой желаемый результат просто вычитая его из предыдущей строки.
Желаемый результат:
Я думаю select quantity into prev_quantity
является виновником, но я не могу собрать из работоспособной альтернативы.
редактировать: здесь есть sqlfiddle - http://sqlfiddle.com/#!9/6cd76/2/0
Большое спасибо и за дополнительную осторожность. Думаю, мне нужно немного изменить его, чтобы привязать к дополнительным столбцам, чтобы предотвратить это – bbruman