У меня есть таблица «product», которая содержит уникальный идентификатор и запас продуктов, я создал еще одну таблицу «statistics», в которой есть внешний ключ для product_id и значения для входящих и исходящих.
Товарный запас обновляется через API и может увеличиваться / уменьшаться на величину. При обновлении я хотел бы увеличить входящие или исходящие значения таблицы статистики, но у меня возникли проблемы с синтаксисом.
Я думаю, что триггер должен произойти после обновления таблицы 'product' и что-то вроде этого происходит:
if new.product_stock < old.product_stock
update statistics set outgoing += (the value) where statistics.product_id = product.product_id
else if new.product_stock > old.product_stock
update statistics set incoming += (the value) where statistics.product_id = product.product_id
Как мне создать такой триггер и получить ли я доступ к значению из обновления или рассчитать его, взяв абсолютное значение (новое - старое)?
Я пробовал в качестве теста что-то вроде этого:
create trigger update_stats after update on product
for each row
update statistics set incoming = 5 where statistics.product_id = product.product_id;
, который ничего не делает с таблицей статистики, а также останавливает обновление таблицы продукта.