我已经在表名创建一个MySQL触发BEFORE INSERT agent_mst如下如何使用MySQL触发器生成序列用户代码?
BEGIN
DECLARE max_id INT;
SET max_id=(SELECT MAX(agent_id_pk)+1 FROM `agent_mst`);
IF (max_id IS NULL) THEN
SET max_id=1;
END IF;
SET NEW.date_added=NOW(),
NEW.date_updated=NOW(),
NEW.agent_code = CONCAT('SDA', LPAD(max_id, 4,'0'));
END
所以它所做的是,每次我们的插图创纪录的时间,它会生成agent_code字段值类似SDA0001 ,SDA0002,SDA0003,...
现在假设我删除记录的代码SDA0003并插入新的记录,肯定会产生代理代码小号DA0004。因为它正在采取max_id并增加它与1但在这里我想再次获得SDA0003。因此,所有agent_codes可以保持顺序。怎么做?
在此先感谢。