【发布时间】:2014-04-23 01:31:26
【问题描述】:
Product_Details 表:(字段)Prod_id(主键)、Product_Name、前缀和 Slno(自动递增)
我需要根据产品名称字段和前缀字段增加Prod_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....等等。我需要为每个产品名称设置一个单独的序列。由于这是一个优先事项,请提供帮助。所有 Db 国王都能回答。
谢谢, 魔方。
【问题讨论】:
-
Nobody in stack overflow 解决了这个问题,请帮我写代码。谢谢 Acube。
标签: mysql triggers innodb auto-increment composite-key