Я пишу процедуру, которая с учетом номера заказа обновляет количество на складе. В настоящее время я получаю номер продукта id_p
и количество qt_p
.
. У меня есть таблица materials
.
id | qt
-------
1 | 12
2 | 4
и таблица materials_x_product
, в которой указывается для каждого продукта, какие материалы и количество, необходимое для изготовления куска
id | qt_per_product | id_material | id_product
----------------------------------------------
1 | 5 | 1 | 1
2 | 2 | 2 | 1
Моя процедура должна обновить таблицу материалов, уменьшив количество материала, используемого для изготовления продукта id_p
на qt_per_product * qt_p
, и потерпит неудачу и откатится, если количество какого-либо материалов идет ниже 0. Например, с учетом приведенных выше таблиц и id_p = 1
, qt_p = 2
ожидаемый результат для таблицы материалов составляет
id | qt id | qt
------- -------
1 | 12 => 1 | 2
2 | 4 2 | 0
Я попытался выполнить несколько ответов на topi c , но проблема, похоже, заключается в том, что мне нужно обновить строки таблицы материалов на основе объединенной таблицы материала и материала_x_product.