@belettery21

Как сделать автозаполнение поля mysql?

Есть таблица:
products
id | product_id | name | variant | price
1 0 мышь красная 150
2 0 мышь синяя 150
3 0 мышь белая 150

id заполняется сам, как сделать так, чтобы при создании нового товара он искал такой же name и если он существует, подставлял product id, а также при создании нового товара создавался новый product_id и также при создании вариации сравнивался с name.
Триггер нужно постоянно вызывать, а нужна автоматизация.
Может подскажите? Может нужно несколько таблиц или ещё что-то?
  • Вопрос задан
  • 292 просмотра
Пригласить эксперта
Ответы на вопрос 2
ipatiev
@ipatiev
Потомок старинного рода Ипатьевых-Колотитьевых
Триггер не нужно постоянно вызывать, это и есть автоматизация.
Но никакой триггер здесь не нужен.

Всё что тут понаписано - это какие-то завиральные идеи от неграмотности.
И их надо просто выкинуть из головы.
поле product_id не имеет смысла, его надо убрать из таблицы
в name ничего подставлять не надо.
Ответ написан
rozhnev
@rozhnev Куратор тега MySQL
Fullstack programmer, DBA, медленно, дорого
Правильно делить это на две таблицы: продукты и варианты. Но если хочется странного то вуаля:
insert into products (product_id, name, variant, price) 
select 
    coalesce (
        min(case when name = 'мышь' then product_id end ),
        coalesce(min(product_id), 0) + 1
    ) product_id
    ,'мышь', 'красная', 150 
from products;


https://sqlize.online/sql/mysql57/50e7ba1b33d77fa9...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы