Если есть веская причина, почему весь список времени должен синхронизироваться при обновлении rekod, например, «когда мы обновляем rekod, мы меняем 10000 строк за один раз»
CREATE TRIGGER update_quantity AFTER UPDATE ON rekod
BEGIN
UPDATE
item_list
INNER JOIN (SELECT sku, SUM(CASE WHEN status = 'add' THEN quantity ELSE -quantity END) as s FROM rekod) x
ON x.sku = item_list.sku
SET item_list.quantity = x.s;
END;
//
delimiter;
Или для сохранения списка элементов в формате syn c построчно, например, «мы обновляем только один элемент за раз в rekod»
CREATE TRIGGER update_quantity AFTER UPDATE ON rekod
FOR EACH ROW
BEGIN
UPDATE
item_list
SET quantity = (SELECT SUM(CASE WHEN status = 'add' THEN quantity ELSE -quantity END) as s FROM rekod WHERE sku = new.sku)
WHERE sku = new.sku;
END;
//
delimiter;
Не уверен, что вы делаете со вставками - я ' я бы подумал, что rekod работает как таблица истории, которая имеет длинную последовательность добавления и минус
Лично я бы просто складывал rekod каждый зуб, который хотел знать баланс, а не пытался поддерживать синхронизацию списка элементов. c