如何在mysql中使用触发器根据产品名称增加产品id

如何在mysql中使用触发器根据产品名称增加产品id,mysql,triggers,innodb,auto-increment,composite-key,Mysql,Triggers,Innodb,Auto Increment,Composite Key,产品详细信息表:(字段)产品id(主键)、产品名称、前缀和Slno(自动递增) 我需要根据产品名称字段和前缀字段增加产品Id(前缀输入将由用户提供)。我已经有了concat前缀和id。但是我无法实现下面显示的顺序 Product Name Prefix Prod_id BOOK BO BO_001 FLOWER FLOW FLOW_001 BOOK

产品详细信息表:(字段)产品id(主键)、产品名称、前缀和Slno(自动递增)

我需要根据产品名称字段和前缀字段增加产品Id(前缀输入将由用户提供)。我已经有了concat前缀和id。但是我无法实现下面显示的顺序

    Product Name      Prefix      Prod_id
    BOOK              BO          BO_001
    FLOWER            FLOW        FLOW_001
    BOOK              BO          BO_002
    DESK              DE          DE_001
    DESK              DE          DE_002
    FLOWER            FLOW        FLOW_002
到目前为止,我已经实现了一个触发器

DELIMITER $$
    CREATE TRIGGER tg_customer_details_INSERT
    BEFORE INSERT ON customer_details
    FOR EACH ROW
      BEGIN
        INSERT INTO product_details_seq VALUES (NULL);
        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;
但在这段代码中,我得到了像book_001、flower_002、book_003、desk_004、flower_005……这样的输出。。我需要一个单独的序列为每个产品名称。由于这是一个优先事项,请提供帮助。所有的国王都能回答

谢谢,
Acube.

最终创建了增量序列,需要连接前缀和产品id。无法做到这一点,需要您在这方面提供帮助…

BEGIN
 select count(*) into @Product_Name from product_details where Product_Name = NEW.Product_Name;
         select Prod_id + 1 into @Prod_id from product_details where Product_Name = NEW.Product_Name order by Prod_Id desc limit 1;
        if @Product_Name > 0 then
           set NEW.Prod_id = @Prod_id;
       else
           set NEW.Prod_id = 1;

       end if;
    SET NEW.Slno = coalesce((select max(Slno) from product_details), 0) + 1;

    end

堆栈溢出中的任何主体都无法解决此问题,请帮助我编写代码。谢谢你。