gpt4 book ai didi

mysql - 如何在mysql中使用触发器根据Product_Name增加Prod_id

转载 作者:行者123 更新时间:2023-11-30 00:31:44 27 4
gpt4 key购买 nike

Product_Details 表:(字段)Prod_id(主键)、Product_Name、前缀和 Slno(自动递增)

我需要根据产品名称字段和前缀字段增加Prod_Id(前缀输入将由用户给出)。我已经连接了前缀和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...等等...我需要每个产品名称有一个单独的序列。由于这是一个优先问题,请提供帮助。所有Db王都可以回答。

谢谢,阿库比。

最佳答案

最终创建了增量序列,需要连接前缀和 Prod_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

关于mysql - 如何在mysql中使用触发器根据Product_Name增加Prod_id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22461231/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com