Acube14 Ответов: 2

как автоинкрементировать тип данных varchar в зависимости от названия детали продукта с помощью триггера?


У меня есть таблица сведений о продукте, поля в таблице следующие Prod_Id, Имя_продукта, Количество, Приставки, Сльно Теперь я создал триггер для поля типа данных varchar и реализовал автоматическое приращение для Prod_Id (первичный ключ) и для Slno. код создает prod_Id типа book_001, Shoe_002,Book_003,Flower_004, shoe_005 и так далее.
Теперь мне нужно, чтобы, если название продукта-RACK, он должен создать id RACK_001 с полем start Prefix (ввод будет дан пользователем) названия продукта и автоматически увеличивать его с помощью поля prefix. Для всего названия продукта он должен создать соответственно, как это сделать.

На данный момент я использую триггер для автоматического приращения в типе данных varchar. H

DELIMITER $$
       CREATE TRIGGER tg_product_details_INSERT
       BEFORE INSERT ON product_details
       FOR EACH ROW
      BEGIN
       INSERT INTO product_details_seq VALUES (NULL);
       SET NEW.Created_Date = NOW();
       SET NEW.Submitted_Date = NOW();
       SET NEW.Slno = coalesce((select max(Slno) from product_details), 0) + 1;
       SET NEW.Prod_id = CONCAT((NEW.Prefix), LPAD(LAST_INSERT_ID(), 3, '0'));
     END
       DELIMITER ;


У меня есть поле префикса concat и поле id, поэтому я получаю book_001, но мне нужна другая последовательность.

название продукта --> & gt; книга, обувь, платье, мебель

для всех книга он должен создать идентификатор автоматического приращения BOOK_001, BOOK_002 и для всех Башмак он должен создать идентификатор автоматического приращения, например SHOE_001, SHOE_002 и так далее...!!!


Мне нужно как для каждого продукта автоматическое приращение должно быть отдельным(SHOE_001, BOOK_001, SHOE_002, FLOWER_001, BOOK_002, SHOE_003 ... и так далее)
Пожалуйста, помогите с кодом запуска.


Спасибо,
Акубе.

2 Ответов

Рейтинг:
1

Gauri Chodanker

Я думаю, что журнал должен получить count (*) записи для продукта
например, для книги, если вы получите 3 записи, то ваш следующий идентификатор будет book_00(count(*) + 1)

если для стойки ваш счет (*) = 0, это означает, что такого продукта нет. Следовательно, ваш идентификатор будет count (*) + 1, то есть rack_001


Рейтинг:
0

garabato

У вас есть решение?
У меня та же проблема