У меня есть БД (у меня работает MySQL 5.7) с двумя таблицами, содержащими данные о механических сборках и их инвентаризации. Чтобы знать об их доступности, наличие одного ключевого компонента имеет решающее значение. Запас ключевого компонента находится во второй таблице (attribute1).
Table: assemblies_details
id name stock
1 assembly1 ?
2 assembly2 ?
3 item1 1
4 item2 2
Table: assemblies_attributes
id name attribute1
1 assembly1 item1
2 assembly2 item2
3 item1
4 item2
Запас товаров обновляется автоматически. На данный момент ключевой компонент устанавливается вручную для каждой сборки в поле attribute1
. Я ищу способ обновить stock
для каждой сборки, проверив stock
элемента, указанного в attribute1
, и записав соответствующее значение stock
в строку сборки.
Итак На данный момент моей самой большой проблемой является поиск способа изменения строки UPDATE
строка за строкой путем поиска указанного элемента attribute1
и копирования существующего значения stock
. Поскольку мой опыт работы с MySQL очень ограничен, я нашел способ использовать UPDATE
для изменения значений после проверки простого условия (что-то написанное в attribute1
):
UPDATE assemblies_details
SET attribute1 = CASE
WHEN LENGTH(assemblies_details.attribute1) > 0 THEN ???
ELSE NULL
END
Является ли запрос я пытаюсь построить выполнимо или я что-то упустил? До сих пор код, который у меня в голове, снова и снова просматривал всю базу данных по каждой строке. Есть ли более быстрый и элегантный способ понять, что я пытаюсь сделать? Любая помощь высоко ценится!